Memo mit allen String in datei speichern



  • Abend,

    hab im Forum diesen code gefunden

    TStringList *list = new TStringList();
    list->Add(Memo1->Lines->Strins[0]);
    list->SaveToFile("c:\\test.txt");
    delete list;
    

    und die Frage ist wie bekomm ich es hin das er nicht nur den String 0 in die datei schreibt, sondern das ganze memofeld mit allen strings?

    muss ich mir die arbeit machen und mit einer schleife arbeiten, die mir die String anzahl überprüft und dann alle einzeln ausgibt??

    BIGBIG THX



  • Form1->Memo1->Lines->SaveToFile("c:\\test.txt");



  • Kannst Du machen, musst Du aber nicht:

    TStringList *list = new TStringList();
    list->Text = Memo1->Lines->Text;
    list->SaveToFile("c:\\test.txt");
    delete list;
    

    Gruss



  • Danke gleich mal probieren!! gewusst wie 😉



  • naja ich habs jetzt so gemacht

    TStringList *list = new TStringList();
    list->Add(Memo1->Lines->Text);
    list->SaveToFile("c:\\scripts\\"+Edit1->Text+".txt");
    dateiausgabe->Visible = true;
    delete list;
    

    jetzt hab ich ein problem mit dem verzeichnis, wen es nicht da ist bringt er mir nen fehler 😞

    wie kann ich den im code das verzeichnis erstellen?

    um nicht gleich noch mal zu fragen *GG* wen es einmal da ist das verzichis, bekomm ich da wieder ein problem? wen er das dan noch mal anlegen will?

    juhu im google fundig geworden 😃

    AnsiString Dir = "C:\\Scripts";
    ForceDirectories(Dir);
    

    THX



  • DirectoryExists
    CreateDir



  • evtl. noch
    ForceDirectories



  • Mit mkdir würds auch funktionieren.
    Sieht dann in etwa so aus:

    mkdir("C:\\Scripts");
    
    TStringList *list = new TStringList();
    list->Add(Memo1->Lines->Text);
    list->SaveToFile("C:\\Scripts\\"+Edit1->Text+".txt");
    delete list;
    

    Natürlich kannst du auch bei SaveToFile etwas anderes als .txt als Speicherdatei verwenden.

    zb:

    list->SaveToFile("C:\\Scripts\\"+Edit1->Text+".dll");
    

    aber das weißt du sicher bereits 😃

    MFG
    Seal_Reaver



  • Abend,

    ich weiss ist schon ne weile her, aber ich hab hier ein kleines Problem zu diesem Thema...

    Wenn ich die Anwendung Installier und nicht mit der Angabe "c:\....."

    Sondern so...

    AnsiString Dir = "\\Scripte\\"+ Edit1->Text;
    TStringList *list = new TStringList();
    list->Add(Memo1->Lines->Text);
    ForceDirectories(Dir);
    list->SaveToFile(Edit2->Text+".lcs");
    

    Dann speichert er das ding immer nur da wo die EXE ausgeführt wird 😡
    Ich wünschte mir, daß er das zwar im Verzeichnis der EXE speichert, doch unter den oben angegebenen Verzeichnis, im EXE Verzeichnis (Hoff es ist Verständlich 🤡 )

    Wie bring ich die Sau dazu? 😕

    @Rostfrei[]:Danke Dir für deine Mühe, aber so wie der Code hier untensteht geht es.
    Aus warterei, hab ich noch mal gesucht und das "ExtractFilePath(Application->ExeName);" gefunden.

    AnsiString workpath=ExtractFilePath(Application->ExeName);
    AnsiString Dir = workpath+"\\Scripte\\"+ Edit1->Text;
    TStringList *list = new TStringList();
    list->Add(Memo1->Lines->Text);
    ForceDirectories(Dir);
    list->SaveToFile(workpath+"\\Scripte\\"+ Edit1->Text+"\\"+Edit2->Text+".lcs");
    delete list;
    

    Ich glaub ich bin mal wieder zu lange vor der Kiste 🙄

    BIGTHX



  • Nutze mal den Debugger und schau Dir mal an, wie AnsiString Dir zusammengesetzt wird. Da sollte der Fehler liegen.



  • hawkdz schrieb:

    AnsiString workpath=ExtractFilePath(Application->ExeName);
    AnsiString Dir = workpath+"\\Scripte\\"+ Edit1->Text;
    

    Der Fehler wird an den zwei Zeilen liege. ExtractFilePath fügt am Ende des Strings noch 'nen Backslash dran.

    D.h. aus deinem String wird X:\Pfad**\**Scripte.


Anmelden zum Antworten