Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: File-data-format-probleem voor c++ beginner  (gelezen 4063 keer)

Offline wimapon2

  • Lid
    • amateur radio-astronomisch waarnemingsstation
File-data-format-probleem voor c++ beginner
« Gepost op: 2010/09/08, 09:18:15 »
LS,
sinds enkele dagen probeer ik in c++ te programeren.
Voor mijn interferometrie radiotelescoop probeer ik de ascii-data files ( ms-dos files) nu
met c++ te bewerken.  
Ik kan nergens vinden hoe je deze files in een c++ programma moet inlezen.
zo'n file bestaat uit 16000 getallen. Elk getal bestaat uit een varierend aantal asciitekens (soms met punt ) gevolgd door een lf en een cr.
De data werd mbv QuickBasic met:  -  print #1, variabele  -     weggschreven

vb:
12
245
2.15
2.123456
123345.4
3


Wim
Een computer is een prachtig stuk gereedschap, jammer dat het zoveel tijd kost om het ding precies te laten doen wat je wilt......

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: File-data-format-probleem voor c++ beginner
« Reactie #1 Gepost op: 2010/09/08, 10:33:08 »
Een beetje offtopic, maar weet je zeker dat je geen python wilt leren? Volgens mij kun je hiermee sneller dit soort taken programmeren. C++ heeft een wat steilere leercurve en in mijn ogen moet je vaak iets meer moeite doen (meer regels code) om simpele dingen voor elkaar te krijgen. Hier een boek over python wat de mensen hier vertaald hebben: http://wiki.ubuntu-nl.org/community/ThinkPython

ontopic, ik neem aan dat je die getallen niet wilt inlezen als tekst. Misschien kun je hier iets mee: http://www.cplusplus.com/forum/general/11047/
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline wimapon2

  • Lid
    • amateur radio-astronomisch waarnemingsstation
Re: File-data-format-probleem voor c++ beginner
« Reactie #2 Gepost op: 2010/09/08, 11:34:05 »
Tjaaa wazzzaaa,
Mijn keuze voor c++ komt doordat ik het gevoel heb dat c++ tegenwoordig eigenlijk overal
voor gebruikt wordt... als je iets zoekt, kom je altijd c++ voorbeelden tegen.
Tot nu toe gebruikte in de "meneer Gates omgeving" altijd Quick Basic.
Daarvoor schreef ik (gedurende 20 jaar) een enorme hoeveelheid functies , subroutines die de
diverse taken voor me deden... (eigenlijk werden het black boxes... ik weet niet meer hoe ze
het deden, maar de deden precies wat ik wilde)
Omdat ik gemakkelijker grafieken wilde omzetten naar .jpg format, ging ik Just Basic gebruiken.
Dit leek erg veel op Quick Basic maar in een handomdraai had je een Visual Basic achtige
box waarin dropdown menu's , invulboxen en aantal grafische venstertjes in een wip geprogrammeerd waren.
 (zie voor wat ik bedoel... mijn astro-site:   http://home.kpn.nl/apon001/huis.htm , en kijk
dan naar de menu-items:  phasing interferometry  en  Now working on....
Hierin zie je de grafieken die ik met Just Basic maakte.)
Alleen rekenen gaat hiermee zo ongelofelijk langzaam dat ik de berekeningen weer in Quick
Basic doe en de output in Just Basic presenteer.

ik heb het gevoel dat ik deze "black boxes truuk" in c++ kan herhalen.
Ik zie dat c++ ongelofelijk snel rekent.
Helaas zie ik nog niet hoe je c++ moet gebruiken om grafische schermen te maken en te
beschrijven.

Kortom: in het verleden bleek Quick Basic een lang bestaande standaard.....
Ik zie dat tegenwoordig c++ deze standaard is geworden.
Daarom, om zo breed mogelijk inzetbaar te kunnen blijven.....

alleen jammer dat er zoveel dialecten en libraries van c++ zijn...
Ik denk dat ik mijn eigen libraries maar moet gaan schrijven.......
Of anders een grote bak vol met aanroepbare routines...


De plek die je aangeeft hoe ze data inlezen lijkt me perfect... heel erg bedankt, ik ga
het proberen.




 
Een computer is een prachtig stuk gereedschap, jammer dat het zoveel tijd kost om het ding precies te laten doen wat je wilt......

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: File-data-format-probleem voor c++ beginner
« Reactie #3 Gepost op: 2010/09/08, 11:48:41 »
wimapon2 fijn om te horen dat je in ieder geval goed hebt nagedacht over je keuze. Dan komt het wel goed. Als je voor snelheid gaat is C++ inderdaad een goeie :).
Je kunt eens kijken naar het Qt framework voor grafische dingen. Succes verder
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline wimapon2

  • Lid
    • amateur radio-astronomisch waarnemingsstation
Re: File-data-format-probleem voor c++ beginner
« Reactie #4 Gepost op: 2010/09/08, 11:59:15 »
Okee,   uhhh, wat is het QT framework en waar kan ik het vinden?
Een computer is een prachtig stuk gereedschap, jammer dat het zoveel tijd kost om het ding precies te laten doen wat je wilt......

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: File-data-format-probleem voor c++ beginner
« Reactie #5 Gepost op: 2010/09/08, 12:12:37 »
Wat: http://nl.wikipedia.org/wiki/Qt-toolkit
Waar: http://www.google.com/search?q=Qt :P

In Ubuntu kun je Qt Creator installeren via het software centrum. Hiermee kun je zelfs sleuren/pleuren (lees: klikkend een GUI in elkaar zetten). En dan code achter de knopjes hangen zeg maar.
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline wimapon2

  • Lid
    • amateur radio-astronomisch waarnemingsstation
Re: File-data-format-probleem voor c++ beginner
« Reactie #6 Gepost op: 2010/09/08, 12:16:09 »
Kan ik er ook grafische venstertjes in een ander venster mee maken??
dat zou geweldig zijn.
Een computer is een prachtig stuk gereedschap, jammer dat het zoveel tijd kost om het ding precies te laten doen wat je wilt......

Re: File-data-format-probleem voor c++ beginner
« Reactie #7 Gepost op: 2010/09/08, 16:58:55 »
Zegt iostream en ifstream je niets?

Met ifstream kan je dat, met Sylph::BufferedInputStream kan je dat ook. In Qt weet ik het niet juist.
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline wimapon2

  • Lid
    • amateur radio-astronomisch waarnemingsstation
Re: File-data-format-probleem voor c++ beginner
« Reactie #8 Gepost op: 2010/09/08, 20:58:59 »
Hoi seysayuks,
voorzover ik het nu begrepen heb kan je met iostream/ifstream alleen tekst of binairies
inlezen..... misschien moet ik gewoon teken voor teken inlezen tot aan de lf of return,
en dan het getal samenstellen, maar ik zie zogauw niet hoe ik dat moet aanpakken.
(ik programmeer pas 2 dagen in c++)
Ik had gehoopt dat er wel een slimme routine zou bestaan die ascii-files kan omzetten
(ik moet 1440 maal 1024 maal 16 getallen per dag gaan inlezen..... en dat een jaar lang).


Wat je met    Sylph::BufferedInputStream   bedoelt is me abacadabra....

kun je me uitleggen hoe ik dat dan moet aanpakken:
dus welke library en wat er precies in en uit moet....
liefst een stukje voorbeeld programma in c++
vast mijn dank
Wim
« Laatst bewerkt op: 2010/09/08, 21:11:48 door wimapon2 »
Een computer is een prachtig stuk gereedschap, jammer dat het zoveel tijd kost om het ding precies te laten doen wat je wilt......

Re: File-data-format-probleem voor c++ beginner
« Reactie #9 Gepost op: 2010/09/09, 07:59:50 »
Hoi seysayuks,
voorzover ik het nu begrepen heb kan je met iostream/ifstream alleen tekst of binairies
inlezen..... misschien moet ik gewoon teken voor teken inlezen tot aan de lf of return,
en dan het getal samenstellen, maar ik zie zogauw niet hoe ik dat moet aanpakken.
(ik programmeer pas 2 dagen in c++)
Ik had gehoopt dat er wel een slimme routine zou bestaan die ascii-files kan omzetten
(ik moet 1440 maal 1024 maal 16 getallen per dag gaan inlezen..... en dat een jaar lang).


Wat je met    Sylph::BufferedInputStream   bedoelt is me abacadabra....

kun je me uitleggen hoe ik dat dan moet aanpakken:
dus welke library en wat er precies in en uit moet....
liefst een stukje voorbeeld programma in c++
vast mijn dank
Wim
Als ik het goed heb, is er per regel één reëel getal. Dan kan het gewoon met:

ifstream str("bestand");
double d;
str >> d;

Met newlines e.d. moet je geen rekening houden dan.

Zit trouwens allemaal in de standaardbibliotheek. Enkel een #include <iostream> nodig.
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline wimapon2

  • Lid
    • amateur radio-astronomisch waarnemingsstation
Re: File-data-format-probleem voor c++ beginner
« Reactie #10 Gepost op: 2010/09/09, 08:56:14 »
Dankjewel SeySayux,
Ik ga het proberen.

Toch komt mijn belangrijkste probleem weer boven:
Waar kan ik nu info vinden over wat er in welke library zit, en hoe ik het moet aanroepen.....

Ik ben gewend om documentatie te lezen en daaruit te vinden wat ik nodig heb....
Ik voel me nu met c++ een beetje aan de goden overgeleverd.....
Een computer is een prachtig stuk gereedschap, jammer dat het zoveel tijd kost om het ding precies te laten doen wat je wilt......

Offline wimapon2

  • Lid
    • amateur radio-astronomisch waarnemingsstation
Re: File-data-format-probleem voor c++ beginner
« Reactie #11 Gepost op: 2010/09/09, 11:22:01 »
Hoi SeySayux,
Je inleesprogrammaatje werkt hier niet.
Ik gebruikte onderstaande tekst in geany.


#include <iostream>

int main()
{
   ifstream str("data.dat");
    double d;
    str >> d;   
   
   return 0;
}

Ik krijg de meldingen:  ifstream was not declared in this scope
en   expected  ';' before str
en  str was not declared in this scope

WAT DOE IK VERKEERD??

Een computer is een prachtig stuk gereedschap, jammer dat het zoveel tijd kost om het ding precies te laten doen wat je wilt......

Re: File-data-format-probleem voor c++ beginner
« Reactie #12 Gepost op: 2010/09/09, 17:08:30 »
Hoi SeySayux,
Je inleesprogrammaatje werkt hier niet.
Ik gebruikte onderstaande tekst in geany.


#include <iostream>

int main()
{
   ifstream str("data.dat");
    double d;
    str >> d;   
   
   return 0;
}

Ik krijg de meldingen:  ifstream was not declared in this scope
en   expected  ';' before str
en  str was not declared in this scope

WAT DOE IK VERKEERD??


'ifsteam' zit in de namespace 'std', dus dan moet je dat ook even vertellen aan je compiler.

#include <iostream>

int main() {
    std::ifstream str("data.dat");
    double d;
    str >> d;   
   
   return 0;
}
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Re: File-data-format-probleem voor c++ beginner
« Reactie #13 Gepost op: 2010/09/09, 17:09:13 »
Misschien kunnen ze je beter helpen op IRC? http://irc.freenode.net/##c++
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline wimapon2

  • Lid
    • amateur radio-astronomisch waarnemingsstation
Re: File-data-format-probleem voor c++ beginner
« Reactie #14 Gepost op: 2010/09/09, 22:36:00 »
Hoi SeySayux,
Ik krijg nog steeds een foutmelding:

leesin.c++:6: error: variable ‘std::ifstream str’ has initializer but incomplete type

het programma:

#include <iostream>

int main()
{
   std::ifstream str("data.dat");
    double d;
    str >> d;   
   
   return 0;
}
« Laatst bewerkt op: 2010/09/09, 22:38:03 door wimapon2 »
Een computer is een prachtig stuk gereedschap, jammer dat het zoveel tijd kost om het ding precies te laten doen wat je wilt......

Re: File-data-format-probleem voor c++ beginner
« Reactie #15 Gepost op: 2010/09/10, 08:09:26 »
Hmm, misschien ook #include <fstream> ?

Ik moet je zeggen, ik kan niet werken met de standaardbibliotheek, je zou echt beter hulp vragen op IRC (irc://irc.freenode.net/##c++)
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline wimapon2

  • Lid
    • amateur radio-astronomisch waarnemingsstation
Re: File-data-format-probleem voor c++ beginner
« Reactie #16 Gepost op: 2010/09/10, 21:22:52 »
Inderdaad fstream lost het probleem op.
Dat wil zeggen, ik weet nog steeds niet hoe ik de inputgetallen nu moet bekijken....
Een computer is een prachtig stuk gereedschap, jammer dat het zoveel tijd kost om het ding precies te laten doen wat je wilt......

Re: File-data-format-probleem voor c++ beginner
« Reactie #17 Gepost op: 2010/09/11, 20:39:15 »
Inderdaad fstream lost het probleem op.
Dat wil zeggen, ik weet nog steeds niet hoe ik de inputgetallen nu moet bekijken....

Euhm, ben je nu letterlijk mijn code aan het kopiëren zonder je af te vragen wat die doet?
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline wimapon2

  • Lid
    • amateur radio-astronomisch waarnemingsstation
Re: File-data-format-probleem voor c++ beginner
« Reactie #18 Gepost op: 2010/09/12, 09:26:33 »
Hoi SeySayux,
Mijn stijl van een nieuwe programmeer taal leren is naar werkende voorbeeldjes kijken,
ze laten werken , zo hier en daar eens wat veranderen en dan kijken wat het effect is.
Zo vecht ik me stap voor stap door een taal heen.
C++ is zo wezenlijk anders dan wat ik gewend ben, dat het nog een schoenendoos vol
met puzzelstukjes , voor mij zonder kop of staart is.
als ik eenmaal de belangrijkste eigenschappen ken, ga ik een programma voor mezelf maken.
Dit is dan een verzameling van een aantal , inmiddels begrepen puzzelstukjes.

Belangrijk voor mij is dat ik eenmaal iets heb dat werkt.
Dit ga ik dan al studerend uitbreiden tot iets wat ik en snap en wat doet wat ik wil.

Ik moet wel opmeken dat ik nog geen goede documentatie over c++ heb kunnen vinden.
Als ik dit niet vind, zal ik met c++ moeten gaan stoppen.
Ik kan bijvoorbeeld nergens vinden hoe de hoofdstruktuur van een c++ programma eruit ziet.


Maar het is niet de eerste keer dat ik dit meemaak.
Met een beetje geluk, gaat het me lukken.
Het is me tenslotte al met  diverse assemblers, microprocessor programmering, diverse fortrans en diverse basics gelukt.

Hoe dan ook, ik ben je dankbaar voor je hulp.

« Laatst bewerkt op: 2010/09/12, 10:01:12 door wimapon2 »
Een computer is een prachtig stuk gereedschap, jammer dat het zoveel tijd kost om het ding precies te laten doen wat je wilt......

Re: File-data-format-probleem voor c++ beginner
« Reactie #19 Gepost op: 2010/09/12, 12:08:47 »
http://cplusplus.com/
http://www.cppreference.com/
http://jcatki.no-ip.org:8080/fncpp

Ik snap trouwens niet wat je met "de hoofdstructuur van een C++-programma" bedoelt.

Oh ja, hier een lijstje met boeken:
http://jcatki.no-ip.org:8080/fncpp/Resources

Dus, informatie genoeg, zou ik zo zeggen...

I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline wimapon2

  • Lid
    • amateur radio-astronomisch waarnemingsstation
Re: File-data-format-probleem voor c++ beginner
« Reactie #20 Gepost op: 2010/09/12, 13:13:34 »
Okee SeySayux. dankjewel , dit is de info die ik nodig had.

Wat ik met de hoofdstruktuur van een programma bedoel is:

Hoe bouw je een programma in zijn algemeenheid op:
dus.. wat is de volgorde van dingen zoals: waarmee begin je altijd een programma.
wat moet je eerst allemaal declareren en "aanzetten".
Hoe struktureer je een programma zelf, dus wat komt eerst en wat mag pas daarna.
Hoe ga je om met stukken van programma's die je niet wilt zien....(subroutines etc)
Hoe zit het met overal in het programma bekendheid van variabelen
Hoe beeindig je een programma.

En dan natuurlijk nog: wat betekenen dingens als { } , void, classes, streams
Dit zijn dingen die ik nog niet eerder tegenkwam.  De documentatie die ik vond
legt deze dingen niet uit.


Het zijn altijd deze dingen die het je de eerste dagen heel moeilijk maken.
Als je deze dingen eenmaal snapt, heb je in een wip een programma in elkaar.
En daarna kun je gericht in de documentatie zoeken hoe je iets wat je wilt
moet doen.


Ik hoop dat je mijn starters probleem nu snapt.
Wim

Een computer is een prachtig stuk gereedschap, jammer dat het zoveel tijd kost om het ding precies te laten doen wat je wilt......

Re: File-data-format-probleem voor c++ beginner
« Reactie #21 Gepost op: 2010/09/12, 18:08:49 »
Okee SeySayux. dankjewel , dit is de info die ik nodig had.

Wat ik met de hoofdstruktuur van een programma bedoel is:

Hoe bouw je een programma in zijn algemeenheid op:
dus.. wat is de volgorde van dingen zoals: waarmee begin je altijd een programma.
wat moet je eerst allemaal declareren en "aanzetten".
Hoe struktureer je een programma zelf, dus wat komt eerst en wat mag pas daarna.
Hoe ga je om met stukken van programma's die je niet wilt zien....(subroutines etc)
Hoe zit het met overal in het programma bekendheid van variabelen
Hoe beeindig je een programma.

En dan natuurlijk nog: wat betekenen dingens als { } , void, classes, streams
Dit zijn dingen die ik nog niet eerder tegenkwam.  De documentatie die ik vond
legt deze dingen niet uit.


Het zijn altijd deze dingen die het je de eerste dagen heel moeilijk maken.
Als je deze dingen eenmaal snapt, heb je in een wip een programma in elkaar.
En daarna kun je gericht in de documentatie zoeken hoe je iets wat je wilt
moet doen.


Ik hoop dat je mijn starters probleem nu snapt.
Wim


De enige vereiste voor een programma is de main-functie, het startpunt van je programma.

Voor de rest raad ik je aan om eens wat te lezen, op http://cplusplus.com/ of eens een goed boek te kopen.
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net