Kann nicht in die Datei schreiben...



  • Hallo,

    erstmal ein großes Lob an das Forum und die Mitglieder dieses Forums!
    Es hat mir schon sehr oft geholfen, auch wenn ich noch keinen Beitrag geschrieben habe 😃

    Aber nun habe ich wohl ein ividuelles Problem (besser gesagt 2). Vielleicht kann mir ja jemand helfen.

    1. Ich habe ein kleines Programm mit Oberfläche im Borland C++ Builder 5 programmiert. Es besteht aus mehreren Formularen, die aber erst per Buttondruck geöffnet werden sollen.
    Nach dem Programmstart starten aber zu Form1 auch Form2 mit und ich weiß nicht wieso. Es gibt keine Unterschiede zu den anderen Formularen.
    Warum passiert das?

    2. Ich möchte eine int Zahl in eine bestimmte Zeile speichern. Das macht er aber nicht. Wieso? 😕

    fstream infile("C:/Temp/Projekt.ini");
          string line;
    
        for(size_t nlines = 1; getline(infile, line); ++nlines)
            if(nlines == C) break;
    
        infile << Pass;
        infile.close();
    

    Komischer Weise macht er es aber woanders mit einem Float-Array:

    for(k=1;k<13;k++)
       {
       c=c+2;
       fstream infile("C:/Temp/Sollwerte.txt");
          string line;
    
        for(size_t nlines = 1; getline(infile, line); ++nlines)
            if(nlines == c) break;
    
        infile << So[k];
        infile.close();
        }
    

    Es wäre nett, wenn mir jemand weiterhelfen könnte.

    Vielen Dank schon mal im Voraus !!

    Gruß
    Andy



  • Hallo

    1. Vermutlich hast du bei dem Form2 die Eigenschaft Visible zur Entwurfzeit oder zur Laufzeit gleich bei Start auf true setzt (bzw. die Methode Show aufgerufen)

    2. So ganz blick ich bei deinem Code nicht durch. Es ist aber auf jeden Fall ein schlechter Stil in einer Schleife 12x die gleiche Datei zu öffnen und jedesmal eine Zeile reinzuschreiben.
    Ich empfehle dir TStringList, da kannst du direkt auf einzelne Zeilen zugreifen wie bei einem Array (siehe FAQ hier im Forum, TOP 3)

    bis bald
    akari



  • Vielen Dank!!

    Das mit dem Form2 hat gleich funktioniert: "Visible=true" war der Grund.
    Und das mit dem TStringList werde ich mir dann nochmal näher anschauen.

    Danke!!

    Gruß
    Andy



  • Hallo,
    eine Frage habe ich doch noch zu TStringList.
    Wie kann ich eine bestimmte Zeile mit dem neuem Inhalt überschreiben?

    Der Befehl "Add" hängt ja nur etwas an dem vorhandenen Inhalt an.

    TStringList *TempList = new TStringList; // Listenobjekt erstellen
       try
       {
          TempList->LoadFromFile("Projekt.txt");
          TempList->Add("Text");
          TempList->SaveToFile("Projekt.txt");
       }
       __finally{
        delete TempList; // Listenobjekt freigeben
       }
    

    Vielen Dank schon mal im Voraus ! !

    gruß
    Andy



  • Schau mal in der Hilfe nach TStringList::Lines.



  • Hallo

    Du meinst wohl TStringList::Strings

    Lines heit z.B. die Eigenschaft von TMemo vom Typ TStrings

    bis bald
    akari



  • ^^ Ja, klar. War schon spät...


Anmelden zum Antworten