txt datei erstellen

cccpmik

Grünschnabel
hey leute ich habe mal ne frage zu manchen funktionen.
also ich möchte eine *.txt datei erstellen mit visual c++. der benutzer muss den namen der txt datei eingeben. also da wird ne anfrage erstmal sein wie wollen sie es bennen und da gebe ich namen ein und ich erstelle eine txt date mit dem namen. dabei sollen noch andere einträge gemacht werden können. und das man die txt datei noch laden könnte. habe irgendwas von fputs und fgets funktionen gehört aber in visual c++ kann ich die nicht einsetzen. also wie lautet befehl um txt datein erstellen und laden
 
Eine Textdatei erstellen kannst du z.b. so:

FILE* fp; // Zeiger auf Datenstrom der Datei
fp = fopen("beispiel.txt","w"); // Datei neu erzeugen bzw. ueberschreiben, wenn es sie schon gibt
fprintf(fp, "Hallo!"); // reinen Text "Hallo!" in die Datei schreiben
fclose(fp); // Datei schließen

Lesen kannst Du den Inhalt dieser Textdatei dann auch, musst dann bei fopen nur "r" statt "w" angeben und z.B. fscanf oder eben auch fgets verwenden.
 
Eine Textdatei erstellen kannst du z.b. so:

FILE* fp; // Zeiger auf Datenstrom der Datei
fp = fopen("beispiel.txt","w"); // Datei neu erzeugen bzw. ueberschreiben, wenn es sie schon gibt
fprintf(fp, "Hallo!"); // reinen Text "Hallo!" in die Datei schreiben
fclose(fp); // Datei schließen

Lesen kannst Du den Inhalt dieser Textdatei dann auch, musst dann bei fopen nur "r" statt "w" angeben und z.B. fscanf oder eben auch fgets verwenden.

wow thx es funktioniert nur ich möchte 1. wohin die txt datei gespeichert werde soll bestimmen. also zb in den ordner CD. und es soll nicht beispiel.txt abspeichern sondern so abspeichern wie ich es in der eingabe mache. bei mir steht im fenster wie wollen sie die datein nenen? und danben eingabe box und drunter button zum erstellen der txt datei.
versteht ihr was ich meine

ps @ jonas meinste du kannst mir per icq helfen weil das ist echt dringend also einfach mal adden 201951279
 
Zuletzt bearbeitet:
Ich sitze leider gerade nicht an meinem Rechner, kann daher gerade nicht auf ICQ zugreifen.
Du kannst aber bei fopen beim Dateinamen auch einen kompletten Pfad angeben, also auch C:\Windows\blablabla... usw. Ansonsten wird eben immer geöffnet bzw. gespeichert in dem verzeichnis, in dem auch das Programm liegt.
Außerdem kann Du beim Dateinamen auch eine Stringvariable reingeben, somit kannst du auch Dateinamen vorher einlesen.
Wichtig ist nur, dass du an den Namen dann immer die entsprechende Dateiendung ranhängst, bei dir also txt.
 
Ich sitze leider gerade nicht an meinem Rechner, kann daher gerade nicht auf ICQ zugreifen.
Du kannst aber bei fopen beim Dateinamen auch einen kompletten Pfad angeben, also auch C:\Windows\blablabla... usw. Ansonsten wird eben immer geöffnet bzw. gespeichert in dem verzeichnis, in dem auch das Programm liegt.
Außerdem kann Du beim Dateinamen auch eine Stringvariable reingeben, somit kannst du auch Dateinamen vorher einlesen.
Wichtig ist nur, dass du an den Namen dann immer die entsprechende Dateiendung ranhängst, bei dir also txt.

void CTest1Dlg::OnButton1()
{
FILE* fp; // Zeiger auf Datenstrom der Datei
CString name;
name = IDC_EDIT1;
fp = fopen( name".txt","w"); // Datei neu erzeugen bzw. ueberschreiben, wenn es sie schon gibt
fprintf(fp, "Hallo!"); // reinen Text "Hallo!" in die Datei schreiben
fclose(fp); // Datei schließen

}

unfegair so aber irngedwas habe ich da falsch gemacht
 
Du musst die Dateiendung schon vor dem Aufruf von fopen ranhängen, müsste doch mit strcat(name, ".txt"); gehen...

habe jetzt das hier

void CTest1Dlg::OnButton1()
{
FILE* fp; // Zeiger auf Datenstrom der Datei
CString name;
IDC_EDIT1 = name;
strcat(name, ".txt"); // Datei neu erzeugen bzw. ueberschreiben, wenn es sie schon gibt
fprintf(fp, "Hallo!"); // reinen Text "Hallo!" in die Datei schreiben
fclose(fp); // Datei schließen
}

es zeigt 2 fehler an

C:\Dokumente und Einstellungen\CCCPMIK\Desktop\projekt\test1\test1Dlg.cpp(177) : error C2440: '=' : 'class CString' kann nicht in 'const int' konvertiert werden
Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden
C:\Dokumente und Einstellungen\CCCPMIK\Desktop\projekt\test1\test1Dlg.cpp(178) : error C2664: 'strcat' : Konvertierung des Parameters 1 von 'class CString' in 'char *' nicht moeglich
Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden
Fehler beim Ausführen von cl.exe.

siehste desswegen brauchte ich dich in icq vielleicht kannste ja durch http://www.meebo.com auf dein icq zugreifen. es ist dringend
 
Hallo,

da du einen CString benutzt kannst du auch einfach das .txt dranhängen

Code:
CString name;
((CEdit*)GetDialogItem(IDC_EDIT1))->GetWindowText(name);
name += ".txt";

und du hast das fopen vergessen. strcat macht nichts anderes als aus zwei char[] eins.

Um den Benutzer entscheiden zu lassen würde ich mir die KLasse CFileDialog mal anschauen. da bekommst du denn einen kompletten Path zurück.

Grüße
R.
 

Neue Beiträge

Zurück