Liste auslesen und auf Inhalte untersuchen
-
Hi
kann mir jemand sagen wie ich es am besten anstelle eine textdatei auszulesen welche recht gross ist (etwa 400kB) um sie anschliessend auf Inhalte zu ueberpruefen?
am besten waere sogar das teilen des gesamten inhaltes in bestimmte abschnitte...abhaengig eines bestimmten zeichens (zB @)01;Sven;SU;1111@02;Guenter;SU;2222@03;Administrator;SU;9999@04;Peter;TE;1234@05;Harry;VK;2121@06;Bernd;TE;2321@07;Dieter;VK;8304@08;Oliver;VK;0101@09;Hanz;TE;4578@
ich moechte die namen in einer combobox darstellen und die auswahl mit der zugehoerigen nummer ausgeben
zB Sven 1111
Guenter 2222bisher hab ich das mit strtok realisiert was aber char bedarf
leider bin ich damit auf recht kleine dateien beschraenktmuss aber wie gesagt tausende von datensaetzen zerpfluecken
danke fuer jegliche hilfe :p
-
Warum bist Du denn da auf kleine Textdateien beschnitten ?
Vllt können wir Dir helfen diese Einschränkung zu umgehen.
-
int SplitString(const CString& input, const CString& delimiter, CStringArray& results) { int iPos = 0; int newPos = -1; int sizeS2 = delimiter.GetLength(); int isize = input.GetLength(); CArray positions; newPos = input.Find (delimiter, 0); if( newPos < 0 ) { return 0; } int numFound = 0; while( newPos > iPos ) { numFound++; positions.Add(newPos); iPos = newPos; newPos = input.Find (delimiter, iPos+sizeS2+1); } for( int i=0; i <= positions.GetSize(); i++ ) { CString s; if( i == 0 ) s = input.Mid( i, positions[i] ); else { int offset = positions[i-1] + sizeS2; if( offset < isize ) { if( i == positions.GetSize() ) s = input.Mid(offset); else if( i > 0 ) s = input.Mid( positions[i-1] + sizeS2, positions[i] - positions[i-1] - sizeS2 ); } } if( s.GetLength() > 0 ) results.Add(s); } return numFound; }//edit: code tags eingefügt
-
leider geht der code bei mir nicht
bin nicht grad der held wenns um referenzen oder pointer geht
bitte gebt mir mal ein wenig hilfe mit kommentar
danke
-
Hi
Um einen String so zu zerlegen gibts die Funktion strtokhttp://www.cplusplus.com/ref/cstring/strtok.html
Grüße Rapha
-
Da wird sich der Guenter aber freuen, dass er jetzt endlich eine Lösung hat

-
jaja...da freut sich der guenni....IHR AFFEN!!!!

:-)))
strtok is laessig aber ziemlich schlecht in meinem code weil ich unter embedded proge und dort ein unicode nur 1 anstatt 2 bit gross ist :-))
aber dennoch danke!!
schluss, aus, ende, vorbei....laengst geloest (so vor ca 4-5 monaten)
gruss
guenni
-
Günter schrieb
bisher hab ich das mit strtok realisiert was aber char bedarf
Rapha schrieb
Um einen String so zu zerlegen gibts die Funktion strtok
ich schreibe
ist echt schön das Ihr euch einig seit!

-
pf, ich habe den Thread einfach nur kurz überflogen

-
Mal im ernst

Es gibt doch sicher ne embedded Version von strtok.
Du kannst die Datei doch in kleine Häppchen aufteilen und dann strtok drüberlaufen lassen
Grüße Rapha
ps. wie hast du es gelöst?
-
hi raecher
das heisst -> ...schoen das ihr euch einig seiD

hey rapha
ich mach doch nur spass!
du hast natuerlich recht mit strtok jedoch kam ich dann nach ewigen stunden der tokerei zu dem problem mit unicode
dann bin ich mal kurz auf cstring umgestiegen da es dort so nette methoden zum suchen und zerlegen gibt
damit ist mein code natuerlich etwas langsamer geworden (ich muss hunderte dateien zerpluecken...da merkt man das schon gut)
aber zum guten schluss sagte mir dann nach unzaehligen falschen tipps jemand, dass es fuer embedded leicht abgewandelte methoden gibt
mit dehnen habe ich dann das unicodeproblem umgangen
ich habe dann weiterhin auf cstring rumgecoded...aber nu schluss!
das ist 4 monate her...
aber vielleicht weisst du wie man mit der mouse gezogene striche als bitmap abspeichert
ich kann zeichnen aber nicht wirklich abspeichern da embedded die funktion
"GetDIBits" nicht kennt
jemand sagte mir ich muesse zuerst mit dieser meine daten in DI casten und dann speichern
unter vc++6.0 laeuft es auch aber halt nicht unter embeddedweisst du vielleicht einen anderen weg??
gruss
guenni
-
Hm, meine spontane Antwort wäre einfach ein Bitmap zu erstellen, es mit einem DC zu verbinden und dann mit SetPixel/LineTo die Bewegung der Maus auf das DC zu malen.
So in etwa: http://download.pearsoned.de/leseecke/VCPLUS6_21Tg/data/kap03.htm
Das müsste eigendlich so auch mit embedded VC++ gehen.Grüße Rapha
-
guten morgen rapha
sorry dass ich erst jetzt antworte
hab voll verpasst meine mails zu checken
habs mitttlerweile auch geschafft
aber mein problem lag nicht im zeichnen sondern im abspeichernnu laeufts und alles is wunderbar
mittlerweile schraub ich an der seriellen schnittstelle rum um diese bitmaps samt textdateien zu verschicken

man hoert mit sicherheit voneinander
Guenni