Datei öffnen geht nur einmal



  • Hallo.
    Ich hab da ein kleines Problem: 😕
    Ich habe ein Programm geschrieben, das eine Datei wie folgt öffnet:

    Key->LoadFromFile(Edit1->Text + Edit2->Text + ".txt");  //Key ist eine StringList
    

    Das geht aber nur einmal, dann nicht mehr. Wenn ich also 2 Dateien öffne, muss ich vorher das Programm beenden und wieder neu starten, dass es funktioniert! 😡
    Hat jemand eine Idee, wie ich eine Datei öfters öffnen kann?



  • das sollte so ohne Probleme funktionieren, d.h. der Fehler ist an einer anderen Stelle

    welche Fehlermeldung kommt denn?
    wie reagiert das Programm?
    haben Edit1 und Edit2 immer den gleichen Inhalt?



  • Wenn ich zum 2. oder 3. ....mal eine Datei öffne, kommt die Fehlermeldung:
    "Datei nicht gefunden.".
    Edit1 und Edit2 haben verschiedene Werte.



  • Ich weiß aber, dass die Datei existiert!



  • dann zeig uns mal bisschen mehr code, der fehler muss wohl irgendwoanders liegen!



  • oder benutz den Debugger und sie nach wie der komplette Pfad mit Dateiname aussieht, in dem das Programm sucht, denn die Fehlermeldung ist eindeutig



  • //ganz oben im Quellcode
      TStringList *Key;
    
      //in FormLoad  
      Key = new TStringList;
    
      //in Button1Click
      try
      {
        Key->LoadFromFile (Edit1->Text + Edit2->Text + ".txt");
        Edit3->Text = Key->Strings[0];
        Edit4->Text = Key->Strings[1];
      }
      catch (...)
      {
        ShowMessage ("Datei nicht gefunden!");
      }
    


  • mal ganz dumm, aber steht denn nach dem ersten laden auch wirklich das richtige in den edit-feldern?



  • Ja, ganz sicher.
    Z.B.
    Edit1: "TeilA"
    Edit2: "TeilB"
    dann sieht die Datei aus: TeilATeilB.txt und die existiert!
    Beim ersten mal geht es ja auch, aber wenn ich dann die gleiche Datei nochmal öffne geht es sogar nicht! 😡



  • verwende bitte komplette Pfade um auf die Datei zuzugreifen, denn einige Komponenten und Programmfunktionen können den Standardpfad ändern und dann kann er die Datei garnicht finden.

    Wenn die Datei im gleichen Verzeichnis liegt wie das Programm kannst du z.B. folgendes verwenden und den Prgrammpfad zu bekommen:

    String Path = ExtractFilePath(Application->ExeName);
    


  • Stimmt!
    Mit ExtractFilePath geht es dann auch öfters!
    Daran hab ich gar nicht gedacht! 🙄
    Vielen Dank! 😃


Log in to reply