Txt Datei bearbeiten
-
Hey
Ich bins wieder
Also ich habe ein kleines Programm geschrieben, welches aus einer txt Datei liest, und nach jedem Zeichen ein Enter macht, bzw ein \n
Aber das wird eben nur in der Ausgabe gemacht. Was muss man tun um die txt Datei direkt zu bearbeiten?
Haben es gelernt *edit* und vergessen^^ /edit, aber genau das Programm ist auf dem Schul-PC, weil mein Notebook einen Aussetzer hatteDanke schon mal.
Gruß
c.nub
-
c.nub schrieb:
Hey
Ich bins wieder
Also ich habe ein kleines Programm geschrieben, welches aus einer txt Datei liest, und nach jedem Zeichen ein Enter macht, bzw ein \n
Aber das wird eben nur in der Ausgabe gemacht. Was muss man tun um die txt Datei direkt zu bearbeiten?
Haben es gelernt *edit* und vergessen^^ /edit, aber genau das Programm ist auf dem Schul-PC, weil mein Notebook einen Aussetzer hatteDeutsch, haben es gelernt *edit* und vergessen. Scheisendreck, was nu?
Suchsu rund um fopen, fgetc, fread und fwrite, guckst Du http://man.cx/. Voll krass, was?
-
c.nub schrieb:
Aber das wird eben nur in der Ausgabe gemacht. Was muss man tun um die txt Datei direkt zu bearbeiten?
einfach eine neue datei aufmachen, und die ausgabe da reinschreiben. wenn du jetzt z.b. mit 'printf' arbeitest, einfach durch 'fprintf' ersetzen.
-
pointercrash() schrieb:
c.nub schrieb:
Hey
Ich bins wieder
Also ich habe ein kleines Programm geschrieben, welches aus einer txt Datei liest, und nach jedem Zeichen ein Enter macht, bzw ein \n
Aber das wird eben nur in der Ausgabe gemacht. Was muss man tun um die txt Datei direkt zu bearbeiten?
Haben es gelernt *edit* und vergessen^^ /edit, aber genau das Programm ist auf dem Schul-PC, weil mein Notebook einen Aussetzer hatteDeutsch, haben es gelernt *edit* und vergessen. Scheisendreck, was nu?
Suchsu rund um fopen, fgetc, fread und fwrite, guckst Du http://man.cx/. Voll krass, was?Woahh so schlimm, einen Link zu posten, den einer nich kennt, und dumm rum meckern und sich aufführen wie der beste Comedian.
Eigentlich würd ich mich ja bei so einem wie dir nicht rechtfertigen, aber umzu zeigen wie hirnlos du eigentlich bist, werde ich es doch tun.
Ich habe normal gefragt und eine normale Antwort erwartet.
Ich = Neuling
Du = Wichtigsteller
fwrite + fread haben wir nicht gelernt.
Ich dachte mit fopen öffnet man nur, und bearbeitet nicht. Tut mir leid, dass ich noch nich soviel weiß, wie du mit deinen 1000 Beiträgen.
Ich wusste eben nicht nach was ich suchen soll. Tut mir leid.Geht das nicht einmal, in einem Theard keinen Post zu bekommen wo dumm rumgemeckert wird?
Sit down.
-
c.nub schrieb:
Geht das nicht einmal, in einem Theard keinen Post zu bekommen wo dumm rumgemeckert wird?
Sit down.bleib geschmeidig, der pc() ist eigentlich ein sehr sympathischer typ mit viel humor. die richtigen wichtigtuer hier hast du doch noch garnicht kennengelernt.
-
;fricky schrieb:
c.nub schrieb:
Aber das wird eben nur in der Ausgabe gemacht. Was muss man tun um die txt Datei direkt zu bearbeiten?
einfach eine neue datei aufmachen, und die ausgabe da reinschreiben. wenn du jetzt z.b. mit 'printf' arbeitest, einfach durch 'fprintf' ersetzen.
Danke, aber... eine neue Datei aufmachen? Verstehe ich nicht so ganz.
Habe in meinem Code das ersetzt und jetzt kommt bei mir eine Fehlermeldung von Visual Studio:
Unbehandelte Ausnahme bei 0x77657dd2 in 'backslash n nach jedem zeichen.exe'
Ich kann auf Unterbrechen und Weiter klicken... Wenn ich auf weiter klicke kommt das selbe Fenster wieder - keine Wirkung
Habe sicher etwas falsch verstanden, aber wasGruß
c.nub
-
c.nub schrieb:
Habe in meinem Code das ersetzt und jetzt kommt bei mir eine Fehlermeldung von Visual Studio:
Unbehandelte Ausnahme bei 0x77657dd2 in 'backslash n nach jedem zeichen.exe'^^zeig mal den code...
-
#include <stdio.h> void main (void) { FILE *lfn; char c; int i = 0; lfn = fopen ("C:\\Users\\Cem\\Desktop\\Desktop\\Documents\\Visual Studio 2008\\Projects\\backslash n nach jedem zeichen\\backslash.txt","r"); if (!lfn) { printf ("Datei konnte nicht geoeffnet werden!"); } while (!feof(lfn)) { c = fgetc(lfn); printf("%c\n", c); // hier fprintf? --> fehlermeldung } getch(); }
-
c.nub schrieb:
printf("%c\n", c); // hier fprintf? --> fehlermeldung
du musst natürlich vorher eine date aufmachen, wo's rein soll. z.b. so:
FILE *newfile = fopen ("c:\\out.txt", "w"); if (newfile == 0) exit (-1); // datei konnte nicht angelegt werden ... // und dann ... if (fprintf (newfile, ...) < 0) exit (-2); // fehler beim schreiben in die datei ... // am schluss dann ... fclose (newfile);
-
c.nub schrieb:
#include <stdio.h> void main (void) { FILE *lfn; FILE *outfile; char c; int i = 0; lfn = fopen ("C:\\Users\\Cem\\Desktop\\Desktop\\Documents\\Visual Studio 2008\\Projects\\backslash n nach jedem zeichen\\backslash.txt","r"); outfile = fopen ("C:\\Users\\Cem\\Desktop\\Desktop\\Documents\\Visual Studio 2008\\Projects\\backslash n nach jedem zeichen\\backslash.txo","w"); if (!lfn) { printf ("Datei konnte nicht geoeffnet werden!"); } while (!feof(lfn)) { c = fgetc(lfn); fprintf(outfile, "%c\n", c); // hier fprintf? --> fehlermeldung } fclose(lfn); fclose(outfile); getch(); }
sollte tun.
Edit: Sorry, closen vergessen
-
Danke pointerchrash.
Ich habe auch überreagiert, tut mir leid.In meiner txt Datei steht: backslash
Nachm ausführen steht nur noch ein Sonderzeichen: ÿ
-
Ganz locker:
In WELCHER Datei steht was? Eingabe- und Ausgabedatei bitte angeben (nötigenfalls kürzen).
-
Es soll in der selben Datei gearbeitet werden.
Also in der Datei "backslash.txt" steht "backslash"
Nach der Bearbeitung soll in der selben Datei das hier in der Datei stehen:
b
a
c
k
s
l
a
s
h*edit*
Wenn man nicht in der selben Datei arbeiten kann, soll es in einer anderen Datei gearbeitet werden und dann rüber kopiert werden, da weiss ich wiederum nicht wie das geht.
-
Ahja, erstmal muß es int c; heißen, weil:
int fgetc(FILE *stream);
-
c.nub schrieb:
Wenn man nicht in der selben Datei arbeiten kann, soll es in einer anderen Datei gearbeitet werden und dann rüber kopiert werden, da weiss ich wiederum nicht wie das geht.
In dieselbe Datei arbeiten geht nicht, weil Dir der Platz fehlt (Du fügst ja "\n"s hinzu. Also in die ".txo"- Datei reinwursteln, die alte "txt" mit remove töten, dann mit rename den neuen auf den alten Dateinamen setzen. Alles klar?
Edit: Bin mit neu und alt schon durcheinander
-
Ok, ich kenne diese ganzen Befehle garnicht, aber ich werde es probieren, hört sich garnich so schwer an...
Hoffentlich kommt sowas zum Test dann kann ich angeben xD
-
remove("C:\\Users\\Cem\\Desktop\\Desktop\\Documents\\Visual Studio 2008\\Projects\\backslash n nach jedem zeichen, in der txt datei\\backslash.txt");
Zeigt mir keine Fehler an, aber es wird nix gelöscht.
Wie funktioniert rename?
*edit* Habe rename probiert - keine Fehler funktioniert wieder nicht.rename("C:\\Users\\Cem\\Desktop\\Desktop\\Documents\\Visual Studio 2008\\Projects\\backslash n nach jedem zeichen, in der txt datei\\backslash.txo", "backslash.txt");
Habe die TFO datei mal im Editor geöffnet, da steht das richtige drinnen naja... plus dem Sonderzeichen am Ende...
Edit: ooops ich habe die Links nicht gesehn, tut mir leid xD
Dachte ist nur unterstrichen
-
#include <stdio.h> int main (void) { FILE *lfn; FILE *outfile; int c; int i = 0; lfn = fopen ("backslash.txt","r"); outfile = fopen ("backslash.txo","w"); if (!lfn) { printf ("Datei konnte nicht geoeffnet werden!"); } else { while (!feof(lfn)) { c = fgetc(lfn); if (c != EOF) fprintf(outfile, "%c\n", (char)c); // hier fprintf? --> fehlermeldung } fclose(lfn); fclose(outfile); remove("backslash.txt"); rename("backslash.txo", "backslash.txt"); } // getch(); }
Bitte über die Änderungen nachdenken.
-
pointercrash() schrieb:
if (c != EOF) fprintf(outfile, "%c\n", (char)c); }
Bitte über die Änderungen nachdenken.
Also gut, danke erstmal.
Ich seh mir schnell den Link an, warum c als int deklariert wird, weil das check ich nicht. Haben wir noch nie so verwendet, weil man kann doch einer interger Variable ein Zeichen zuweisen. Oder wird da der ASCI-Code zugewiesen?
(char)c habe ich auch noch nicht gelernt, ist aber logisch, also hier wird es dann zum schreiben (denke ich) vom ASCI-Code in ein Char umgewandelt und so geschrieben.
Edit: Habs gerade ohne dem (char) vor dem c versucht, geht genauso, anscheinend wird es dann automatisch umgewandelt.
-
Uhm, habe ich recht?
Ich will schon wissen wie das Programm funktioniert.^^