in textdatei speichern



  • ich will euch mal sagen: TStringList ist gar nciht so toll wie hier der Eindruck erweckt wird.
    TStringList verursacht auf verschiedenen Systemen wirre Speicher und Lade-Fehler. Mal kann hier die Datei mt LoadFromFile nicht geladen werden oder auf einen anderen Rechner funktioniert SaveToFile nicht.

    Und warum sollte man TStringLIst nehmen. es gibt doch so schöne C++ Routinen dafür:

    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    #include <fstream>
    using namespace std;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void AddToFile(char* FileName, char* Text)
    {
            ofstream file(FileName, ios_base::app);
            if(file.is_open())  file<< Text <<endl;
            file.close();
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
            AddToFile("C:\\test.txt", "Hallo")  ;
    }
    //---------------------------------------------------------------------------
    

    Das geht mit TStringList auch nicht kürzer.



  • Ich halte es sowieso für grundsätzlich falsch die TStringList als lade- und speicher- Klasse zu missbrauchen. Wenn es eben geht sollte man die VCL-Klassen eh meiden. Und das geht in allen Fällen bis aus die, in denen die Daten direkt visualisert werden sollen wie bei TMemo oder TReichEdit...



  • ich hab da:

    da bekomme ich den string.....die funktionen: getkeynametext und TextToKey hab ich weggelassen...

    void __fastcall TZeichenForm::Zeichen(TMessage &Message)
    {
       char Key[41];
       AnsiString as;
       GetKeyNameText(Message.LParam, Key, 41);
       if(ListBox1->Items->Count == 0)
       {
          as = TextToKey("", Key);
          ListBox1->Items->Add(as);
       }
       else if(strcmp(Key, "EINGABE") == 0)
       {
          ListBox1->Items->Add("\0");
          ++Zeilen;
       }
       else
       {
          as = TextToKey(ListBox1->Items->Strings[Zeilen], Key);
          ListBox1->Items->Strings[Zeilen] = as;
       }
    }
    
    // ich will den text alle 10 sekunden in die textdatei speichern......
    void __fastcall TZeichenForm::Timer1Timer(TObject *Sender)
    {
       dt = dt.CurrentDate();
       AnsiString as = Application->ExeName;
       as.Delete(as.Length()-3, 4);
       as += "_LOG_";
       as += dt.DateString();
       as += ".txt";
       ListBox1->Items->SaveToFile(as);
    }
    

    wie kann ich da das in die C++ Routine speichern in textdatei ändern:
    ofstream file..........

    danke no mal!!!!
    cu



  • AndreasW schrieb:

    Ich halte es sowieso für grundsätzlich falsch die TStringList als lade- und speicher- Klasse zu missbrauchen. Wenn es eben geht sollte man die VCL-Klassen eh meiden. Und das geht in allen Fällen bis aus die, in denen die Daten direkt visualisert werden sollen wie bei TMemo oder TReichEdit...

    hehe und sowas sagt ein Mod im Borland C++ Builder (VCL/CLX) Forum
    wo es ja über VCL geht. 🙂 🙂

    OK der BCB stirbt, also auf längerer Sicht, muss man sich wiso von der VCL trennen, also nichts für ungut 🙂

    mfg
    VergissEs



  • VergissEs schrieb:

    hehe und sowas sagt ein Mod im Borland C++ Builder (VCL/CLX) Forum
    wo es ja über VCL geht. 🙂 🙂

    Wieso nicht? Wenns doch richtig ist? (und zwar durch mehrerlei Aspekte) Nur weil man hier Mod ist, heisst das nicht, dass man der Materie nicht kritisch gegenüber stehen darf...

    -junix



  • hier überschreibe ich immer die textdatei.....
    was soll ich nun nehmen?*g*
    kann mir jemand helfen?

    richtig is es no nicht...will doch die textdatei nicht überschreiben!!!
    cu



  • @matrin_:
    entweder arbeitest du an uns oder wir an dir vorbei.
    Du hast doch gesagt, dass du neuen Text an einer Datei anhängen willst. Wo bitte ist der Text der in die Datei soll.

    Was du machst ist eine Dateiumbennenungsorgie. Nicht aber das, was du im ersten Beitrag haben wolltest.

    Sag bitte konkret welchen Text du wo hin haben willst.

    @VergissEs :

    ich könnte auch sagen: Borland C++ Builder (VCL/CLX) Forum

    Warum nicht eine Sprache verwenden anstatt einer angeschlossenen Bibliothek.
    Ihr behauptet in C++ zu schreiben. Ihr schreibt aber nur "mit" der VCL.
    Wenn euch jemand die VCL wegnimmt bekommt ihr doch kein richtiges Programm mehr am laufen.

    nix für ungut, aber manchmal muss man auch die Wahrheit vertragen können 😉

    Ich hab auch lange gebraucht dass runterzuschlucken...



  • Das Problem, dass zu wenig wirklich in C++ geschrieben wird ist aber nichts neues. Das habe ich und auch andere bereits schon vor langer Zeit bemängelt. Das ist als keine Schlussfolgerung aus der Tatsache, das der BCB nicht weiterentwickelt werden soll. Was ja nicht einmal sicher ist. Schließlich muss sich erst einmal der BX durchsetzen. Wenn er sich nicht bei den BCB'lern durchsetzt kann es auch durchaus passieren, das Borland eine neue BCB-Version rausschmeißt und diese weiterentwickelt. Aber da dass ist eh alles nur Spekulation...

    letzendlich wird ja dass gemacht, womit Borland am meisten Geld verdient. Und das weiss Borland ja selbst noch nicht...



  • Hallo,

    AndreasW schrieb:

    @matrin_:
    @VergissEs :

    ich könnte auch sagen: Borland C++ Builder (VCL/CLX) Forum

    Warum nicht eine Sprache verwenden anstatt einer angeschlossenen Bibliothek.
    Ihr behauptet in C++ zu schreiben. Ihr schreibt aber nur "mit" der VCL.
    Wenn euch jemand die VCL wegnimmt bekommt ihr doch kein richtiges Programm mehr am laufen.

    nix für ungut, aber manchmal muss man auch die Wahrheit vertragen können 😉

    Ich hab auch lange gebraucht dass runterzuschlucken...

    Oh man ... da fühlt sich wohl einer Angegriffen und hat die ganzen Smilies in meinen Beitrag übersehen!

    und zu:
    "Ihr schreibt aber nur "mit" der VCL.Wenn euch jemand die VCL wegnimmt bekommt ihr doch kein richtiges Programm mehr am laufen. "
    <denkanzatzwisoerdasjetztschriebt>
    sorry komm nicht drauf bzw. hatte ich Ihn vielleicht in die Ecke getränkt das er sich mit so einer üblen Behauptung rechtfertigen muss? ne kann nicht sein.
    </denkanzatzwisoerdasjetztschriebt>
    Holla, du kennst ja alle VCL-Forenbesucher hier, und auch deren Kenntnisstand
    (alles nur dumme VCL-Benutzer) WAAAUUU bin beeintruckt.

    und zu:
    "nix für ungut, aber manchmal muss man auch die Wahrheit vertragen können"

    Die Wahrheit ist, wir sind hier im VCL Forum.
    Wie oft muss man hier lesen "Hat nichts mit VCL zu tun, ab nach C++" und
    jetzt wird man angemacht wenn man eine VCL Lösung in einen VCL-Forum bringt. 🙄 🙄

    und zu:
    "Ich hab auch lange gebraucht dass runterzuschlucken..."

    war bei mir das gleiche als ich den Beitrag von junix las, naja, hab mir dann gedacht, ok der hat meine sarkastische Bemerkung nicht verstanden.
    Wollt auch keinen flamen anfangen, also schrieb ich nichts drauf, und jetzt wird man die so Doof angemacht, sorry aber das finde ich jetzt nicht so Tolle!

    mfg
    VergissEs



  • ich hab deine Smilies nicht übersehen.
    Ich hab allerdings zu wenige eingebaut.

    Ich wollte damit niemanden, insbesondere dich nicht, damit beleidigen. Das war auch nicht an dich gerichtet sondern an die Allgemeinheit.
    Es war mehr als "augenaufreissender" Anstoß gemeint. Dazu übertreibt man gelegentliche ein wenig 😉

    Holla, du kennst ja alle VCL-Forenbesucher hier, und auch deren Kenntnisstand
    (alles nur dumme VCL-Benutzer) WAAAUUU bin beeintruckt.

    sicherlich etwas überzogen. Du wirst es nicht glauben, aber ich benutze auch die VCL. Aber ich bin nicht jemand, der so VCL-fixiert ist, dass er ne TStringList nehmen muss um ne Datei zu speichern. 🙄

    Wie oft muss man hier lesen "Hat nichts mit VCL zu tun, ab nach C++" und
    jetzt wird man angemacht wenn man eine VCL Lösung in einen VCL-Forum bringt.

    ich hab, soweit ich denken kann immer C++- Fragen hier im Forum beantwortet und nicht einfach nach C++ geschoben. Ausnahmen sind Standard- C++ fragen wie "Warum schreibt man nicht #include iostream.h" und sowas.

    Und anmachen wollte ich dich auch nicht. Wenn du es so auffasst, entschuldige ich mich hiermit.



  • ich will das so machen das ich bei mir die datei nicht überschreibe!

    den text bekomm ich von einer funktion was ich nicht gepostet habe:
    as = TextToKey("", Key);
    ListBox1->Items->Add(as);

    im as is der text!

    irgendwie weiß ich net wei ich weiter machen soll einer sagt so einer so;-)
    cu



  • Hi matrin_ (oder martin_) oder ...

    Lass Dich nicht irre machen von dem Gefachgesimpel Hier wird ueber mehrere Sachen diskutiert - den Eindruck habe ich zumindest!

    1. WebFritzis erste Beschreibung war schon ok - Du haettest es nur genau so machen sollen!

    2. Nimm doch anstelle von SaveToFile die Methode SaveToStream !!!
    - dazu vorher ein TStream- Objekt erzeugen (am Ende Löschen!!!)
    - mit Seek kannste den TStream an das dateiende stellen!!!
    - Wenn Du dann mit SaveToStream ( den Stream mit uebergeben! ) die Liste speicherst, muessten die Zeilen angehaengt werden!!!

    Lies mal die Hilfe zu TStream und SaveToStream dazu!

    PS: Das ist mit VCL !!! (Ich mach sowas eigentlich eher mit C / C++) so isses aber 'einfacher!

    PS2: Wenn Du nur Texte regelmaessig protokollieren willst, koennte das auch mit IniFile bequem gehen!



  • @AndreasW: Dann könnte ich doch genauso sagen: "Wozu VCL verwenden? Benutzt doch gleich die WinAPI." Es ist eben einiges sehr einfach gemacht. Warum sollte man keine TStringList nehmen, wenn man schon die Chance dazu hat? Hauptsache, man weiß, wie man Textdateien auch ohne VCL abspeichern kann.



  • @WebFritzi
    Achtung zieh dich warm an, gleich wirst du verprügelt. 😉 😉

    VCL TStringList Benutzer haben hier nichts verlohren. 😃

    mfg
    VergissEs



  • Was willst du, du A-r-s-c-h-l-o-c-h! Willst du mich anlabern? Kannste gleich vergessen mit deinem C++-Scheiß, du Gesichtsgerümpel! VCL rules.

    P.S.: Gaaanz dickes 😉 😃



  • Hi Leute,

    Bleibt doch mal ganz COOL! 🙂 🙂

    Ich glaube hier sucht einer nur 'n bissl Hilfe, darum braucht Ihr doch nicht streiten.

    PS: Is' doch Sch****** Egal ob VCL, C, C++, WinApi oder Delphi, hauptsache es funzt! (und man kanns! 😃 )

    Wer will, nehme doch Assembler! 🙄



  • DerAltenburger schrieb:

    Ich glaube hier sucht einer nur 'n bissl Hilfe, darum braucht Ihr doch nicht streiten.

    Du hast garnichts verstanden...



  • ich will keinen streit nur eine hilfe!!!
    danke...cu



  • Falls du es auch noch nicht mitbekommen hast: Hier streitet keiner!



  • Webfritzi:
    Was willst du, du A-r-s-c-h-l-o-c-h! Willst du mich anlabern?

    ach nein? oder is das deine normale umgangssprache?
    glaub ich kaum..

    cu


Anmelden zum Antworten