Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 17.09.2002, 14:27 Titel: ARbeiten mit Textdateien Teil2 |
|
|
Wie kann ich erkennen, ob eine Leerzeile vorliegt...das möchte ich als Trennzeichen verwenden...und nur das Leerzeichen...also nciht einfach sagen...nimm einfach ein anderes Zeichen...
Und wie kann ich nochmal eine Zeile nach oben zurückspringen?
Vielen Dank schon Mal für eure Antworten!!!
P.S.: Es stört zwar nicht so, aber Christian, könntest du das Board wieder eindeutschen? Vielen Dank!!! _________________ The source of all power is in its destiny... |
|
Nach oben |
|
|
Gast
|
Verfasst am: 17.09.2002, 14:58 Titel: |
|
|
Sollte wieder alles Deutsch sein.
Christian |
|
Nach oben |
|
|
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 17.09.2002, 15:42 Titel: |
|
|
Danke
Weißt du jetzt auch die Antwort auf meine Frage mit der Erkennung der Zeilenvorschube?
Okay Zeilernvorschub kann man ja doch mit \n erkennen... _________________ The source of all power is in its destiny... |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 18.09.2002, 13:12 Titel: |
|
|
Hallo,
wie leist du die Datei denn ein? Wenn du es mit getline machst, bekommst
du ja eine leere Zeile. Überprüfen, ob die Zeile komplett leer ist, kannst du am besten mit isspace(zeichen); Wenn das für die gesamte Zeile zutrifft, ist sie leer. Ich weiss aber nicht, ob eine Leerzeile das beste Trennsymbol ist.
Christian |
|
Nach oben |
|
|
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 18.09.2002, 13:20 Titel: |
|
|
Die Leerzeile muss ich als Trennsymbol nehmen, da es das andere Programm so eine Log Datei erstellt die nicht immer ein eindeutiges Ende hat, außer die Neue Zeile.
Und noch eine Frage...ich lese 10 Werte nacheinander aus und speicher die in die Zeichenkette temp, dann vergleiche ich, um welche Zeile es sich handelt mit: if(temp[0]='S' && ...)
und wenn ich dann herausgefunden hab, dass die Zeile mit Status anfängt wird sie in temp2 z.B. gespeichert...wenn ich den Inhalt davon oft am Bildschirm ausgebe....kommen machnmal viele Leerzeichen und dann so komische Zeichen infolge von dem Dateinamen der Textdatei...das passiert auch beim kopieren, wenn ich nicht vor dem letzten Zeichen eine 0 hinschreibe...
Was ist das? _________________ The source of all power is in its destiny... |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 18.09.2002, 14:14 Titel: |
|
|
Hallo,
anstatt mit if(temp[0] == 'S' && ... temp[10] == 'X')
(auf == achten !) kannst du auch strncmp benutzen (Stringvergleich mit Angabe der Anzahl der Zeichen).
Wenn du sowas machst:
Code: |
char temp[25]; // hier steht, besonders, wenn es eine lokale Variable ist irgendwas drin
temp[0] = 'H';
temp[1] = 'A';
temp[2] = 'L';
temp[3] = 'L';
temp[4] = 'O';
printf(temp); // Das gibt zu 95 % einen Fehler, d.h. Komische Zeichen nach Hallo
temp[5] = 0;
printf(temp); // jetzt geht es gut
|
Das liegt daran, dass Strings mit einen Nullzeichen abgeschlossen werden müssen. Erst an diesem Zeichen endet für C++ der String.
Christian |
|
Nach oben |
|
|
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 18.09.2002, 18:54 Titel: |
|
|
Okay...aber das ist einfach so?
0 daran hab ich mich dann noch aus meinem Jetzt lerne ich C Buch erinnet *stolz*
Na klar heißt es == ...hast aber gut aufgepasst!!!
Vielen Dank _________________ The source of all power is in its destiny... |
|
Nach oben |
|
|
|