1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

CBuilder 6 / Text in eine erstellte Datei speichern!

Dieses Thema im Forum "Borland CBuilder und VCL" wurde erstellt von The61freak, 2. Januar 2014.

  1. The61freak

    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: 2. Januar 2014
  2. sheel

    sheel I love Asm Administrator

    Hi und Willkommen bei tutorials.de,

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

    The61freak Grünschnabel

    fopen/fprintf/fclose habe ich versucht ist nicht fegangen.
    wie geht es mit der klasse ofstream?
     
  4. sheel

    sheel I love Asm Administrator

    Doch, die funktionieren schon.
    Wenn du deinen Versuch herzeigst kann man dir die Fehler sagen...
     
  5. The61freak

    The61freak Grünschnabel

    Hier ist der Versuch :

    Code (Text):
    1. void __fastcall TForm1::Button1Click(TObject *Sender)
    2. {
    3.     FileCreate(Edit1->Text+"MeinText.txt");
    4.     fopen ("c:\Users\Public\Desktop\MeinText.txt","w+");
    5.     fprintf("MeinText.txt", "Hallo");
    6.     fclose("MeinText.txt");
    7.  
    8.  
    9.  
    10.  
    11.  
    12. }
     
  6. saftmeister

    saftmeister Nutze den Saft! Premium-User

    Hmm, mal Dokumentation lesen wäre ratsam. Versuch es mal so:

    Code (C++):
    1. void __fastcall TForm1::Button1Click(TObject *Sender)
    2. {
    3.     FileCreate(Edit1->Text+"MeinText.txt");
    4.     FILE *fp = fopen ("c:\Users\Public\Desktop\MeinText.txt","w+");
    5.     if(fp) {
    6.       fprintf(fp, "Hallo");
    7.       fclose(fp);
    8.     }
    9. }
    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/
     
  7. The61freak

    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 (Text):
    1. ("c:\Users\Public\Desktop\MeinText.txt","w+");
     
  8. saftmeister

    saftmeister Nutze den Saft! Premium-User

    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. ?
     
  9. sheel

    sheel I love Asm Administrator

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

    Und Pfad und Dateiname gehören einfach zusammen?
     
  10. The61freak

    The61freak Grünschnabel

    Zuerzeit habe ich das
    Code (Text):
    1. void __fastcall TForm1::Button1Click(TObject *Sender)
    2. {
    3.     FileCreate(Edit1->Text+"MeinText.txt");
    4.     FILE *fp = fopen ("C:\\Users\\Public\\Desktop\\MeinText.txt","a");
    5.     if(fp) {
    6.       fprintf(fp, "Hallo");
    7.       fclose(fp);
    8.     }
    9.  
    10.  
    11.  
    12. }
    Es gibt immer nur eine leere datei
     
  11. sheel

    sheel I love Asm Administrator

    a)
    Lösch die leere Datei, nimm folgende Zeile aus dem Code
    Code (C++):
    1. 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?
     
  12. The61freak

    The61freak Grünschnabel

    Danke es ist gegangen hier der Code:
    Code (Text):
    1. void __fastcall TForm1::Button1Click(TObject *Sender)
    2. {
    3.  
    4.  
    5.     FILE *fp = fopen ("C:\\Users\\Public\\Desktop\\MeinText.txt","w+");
    6.     if(fp) {
    7.       fprintf(fp, "Hallo");
    8.       fclose(fp);
    9.     }
    10.  
    11.  
    12.  
    13. }
    Danke vielmals :)
     
Die Seite wird geladen...