Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » bestimmten teil einer textdatei auslesen...

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ]
010
31.10.2004, 13:26 Uhr
hase



sry, weiss nicht was du meinst...MFC klassen?
das sin doch die kompilierspezifischen oder?!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
31.10.2004, 13:39 Uhr
~_tobi_
Gast


ich mein die Microsoft Foundation Classes; naiv könnte man sagen "Hilfsklassen" für c++, obwohl das nicht genau passt und ich wahrscheinlich dafür gleich gesteinigt werde

Wenn man allerdings Winapi macht, macht man das ja meistens in c oder c++, ohne die mfc unterstützung zu nutzen und alles zu vermischen.. (die meisten jedenfalls)

Naja, jedenfalls bieten dir die Mfc- Klassen einige Hilfestellungen; für dein Problem könntest du die nicht dokumentierte MFC- Funktion "AfxExtractSubString" nutzen, mit der Du aus einer CString- Variablen eine Substring extrahieren kannst (wer hätte das gedacht... ).

Aber wenn Du alles schön sauber in standard C bzw. C++ machen willst, denn geht das natürlich nicht und wär dann auch hier das falsche Forum


Tobi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
31.10.2004, 14:06 Uhr
hase



ne, muss net sauber/schön standart c++ sein winapi etc. sin schon ok...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
31.10.2004, 14:07 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



C++:
int main(){
    char string[] = "Hoffentlich;gibt;der;Hase\n;jetzt;Ruhe";
    char seps[]   = " ,;\t\n";
    char *token;
    printf( "%s\n\n", string );
    for(token = strtok(string,seps);token;token = strtok(NULL,seps ))
        printf("%s\n",token );
}


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
31.10.2004, 14:15 Uhr
hase



ok, vielen dank erstma....
aber könnteste vielleicht auch erklären was du da tust, wär net...

d.h. ich muss meine txt datei erst innen string lesen, oder?!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
31.10.2004, 14:18 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

d.h. ich muss meine txt datei erst innen string lesen, oder?!


ja
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
31.10.2004, 14:19 Uhr
hase



ok....
wie, kann ich die einzelnen textabschnitte dann wiederrum einer variablen zuweisen?
sry, fürs nerven..aber glaub das wars dann^^

btw. printf is doch C odeR?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
31.10.2004, 14:22 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


zuweisen gar nicht...
du hast einen zeiger auf einen stringabschnitt... in diesem fall den charpointer token...
wenn du daraus ein int machen willst geht z.b. atoi... für ein float/double atof...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
31.10.2004, 14:25 Uhr
~_tobi_
Gast


oder mit mfc -unterstützung:

Anwendung der Fkt AfxExtractSubstring:
AfxExtractSubString(CString Textzeile, CString ExtrahierterText, PostionImSubstring, strTrennzeichen);

Quasi so:


Code:

(...)
CStdioFile Textdatei;
CString strZeile,strTrennzeichen=";",strDateiname="MeineTextdatei",strText;
int Position=0;
/* Datei öffnen */
if(!Textdatei.Open(strDateiname,CFile::modeRead))
      return FALSE;

/*Zeile auslesen*/
while((Textdatei.ReadString(strZeile))!=NULL)
{
             AfxExtractSubString(strZeile, ExtrahierterText, Position, strTrennzeichen);
             Position++;
             (...)
}
(...)



Ergebnis:

ReadString speichert eine Zeile (bis zum Zeilenumbruch) in 'strZeile' solange er alle Zeilen in der Textdatei durch hat. Der Text in jeder Zeile, der durch das 'strTrennzeichen' getrennt ist, an 'Position' wird in 'ExtrahierterText' gespeichert (und in diesem Fall jedesmal überschrieben!).

Jetzt musst du noch alles schön anpassen, Header einbinden - fertig. So kannst du, wenn du weisst an welcher Stelle in der Zeile was steht, die Positionen gezielt abfragen; nützlich bspw. bei csv- Dateien.

Tobi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
31.10.2004, 14:27 Uhr
hase




Zitat:
wenn du daraus ein int machen willst geht z.b. atoi... für ein float/double atof...


es is ja aber text, also möcht ich kein int machen, sondern schon wieder string...den ich dann auch mit andren string vergleichen kann...

wie sieht dabei die syntax aus...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: