CBuilder 6 / Text in eine erstellte Datei speichern!


The61freak

Grünschnabel
Hallo, Ich suche seit Tagen im Internet nach einer Lösung meines Problems, aber habe keine Lösung gefunden.
Hier mein Problem:
Ich erstelle eine .txt datei in Cbuilder 6 und möchte etwas hineinschreiben.


void __fastcall TForm1::Button1Click(TObject *Sender)
{
FileCreate(Edit1->Text+"MeinText.txt");

}
Kann jemand mir sagen wie das geht ich bin ein neueinsteiger und mit den befehlen im aus anderen quellen kann ich es nicht machen.
Danke im vorraus.:)
 
Zuletzt bearbeitet:

sheel

I love Asm
Hi und Willkommen bei tutorials.de,

ohne auf Borland-spezifische Sachen einzugehen:
hast du fopen/fprintf/fclose (C) bzw. die Klasse ofstream (C++) versucht?
 

sheel

I love Asm
Doch, die funktionieren schon.
Wenn du deinen Versuch herzeigst kann man dir die Fehler sagen...
 

The61freak

Grünschnabel
Hier ist der Versuch :

Code:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    FileCreate(Edit1->Text+"MeinText.txt");
    fopen ("c:\Users\Public\Desktop\MeinText.txt","w+");
    fprintf("MeinText.txt", "Hallo");
    fclose("MeinText.txt");





}
 

saftmeister

Nutze den Saft!
Hmm, mal Dokumentation lesen wäre ratsam. Versuch es mal so:

C++:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    FileCreate(Edit1->Text+"MeinText.txt");
    FILE *fp = fopen ("c:\Users\Public\Desktop\MeinText.txt","w+");
    if(fp) {
      fprintf(fp, "Hallo");
      fclose(fp);
    }
}
Ein FILE* ist ein Pointer auf ein File-Handle. Sämtliche stdio-Funktionen verwenden File-Pointer. Du solltest dich damit vertraut machen. Das hat noch nicht mal speziell was mit CBuilder zu tun, sondern ist ANSI. Hier ein tolles Buch zum lesen: http://openbook.galileocomputing.de/c_von_a_bis_z/
 

The61freak

Grünschnabel
Danke es funktionert das es "hallo" in die textdatei schreibt aber
1.es erstellet eine neue text datei
2.es speichert den text nicht in die erstellete Text datei
3.wenn ich den pfad eingbe wird der name der ertellten text datei der pfad?
Code:
("c:\Users\Public\Desktop\MeinText.txt","w+");
 

saftmeister

Nutze den Saft!
1. Dann willst du evtl. mal als Modus für das Öffnen der Datei "a" wie append (anhängen) statt "w" wie "write", was die Datei quasi leert.

2. In welche erstelle Datei? Die von "FileCreate(Edit1->Text+"MeinText.txt");"? Dann musst du halt den Pfad von fopen() entsprechend anpassen.

3. ?
 

sheel

I love Asm
Was noch nicht gesagt wurde: Beim Pfad immer doppelte \\ statt einfache \

Und Pfad und Dateiname gehören einfach zusammen?
 

The61freak

Grünschnabel
Zuerzeit habe ich das
Code:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    FileCreate(Edit1->Text+"MeinText.txt");
    FILE *fp = fopen ("C:\\Users\\Public\\Desktop\\MeinText.txt","a");
    if(fp) {
      fprintf(fp, "Hallo");
      fclose(fp);
    }



}
Es gibt immer nur eine leere datei
 

sheel

I love Asm
a)
Lösch die leere Datei, nimm folgende Zeile aus dem Code
C++:
FileCreate(Edit1->Text+"MeinText.txt");
und führ in wieder aus.
Ist wieder eine leere Datei da? Nein?
Dann hast du einfach die falsche Datei angeschaut.
Dieses FileCreate, wo immer es auch her kommt, hat mit dem Rest nichts zu tun.

b)
Mach nach dem if(...){...} noch ein else, in dem du irgendeine Fehlermeldung ausgibst.
Wird die beim Ausführen angezeigt?
 

The61freak

Grünschnabel
Danke es ist gegangen hier der Code:
Code:
void __fastcall TForm1::Button1Click(TObject *Sender)
{


    FILE *fp = fopen ("C:\\Users\\Public\\Desktop\\MeinText.txt","w+");
    if(fp) {
      fprintf(fp, "Hallo");
      fclose(fp);
    }



}
Danke vielmals :)