Komischer Fehler, oder?



  • Bei dem folgendem Progrämmchen liegt ein sehr komisches Problem vor. Ich versuche es mal kurz zu erläutern: Ich habe eine HTML-Datei, in die bei diesem Programm etwas reingeschrieben werden soll. (es handelt sich hier um Autodaten!) Wenn nun alle Daten (also: fabrikat, km-stand, bemerkungen etc. aber NICHT:!Bild!) angegeben sind, wird das in einer Datei gespeichert. Das funktioniert auch! Nun soll ebefalls ein Bild hinzugefügt werden können. Doch, wenn ich die Datei dafür angebe, das Progarmm läuft, kann die Datei nicht gespeichert werden. Vielleicht ist da irgendwas mit den Funktionen falsch geraten.
    Hier einmal die Funktion für den Bildeinleser:

    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    try
    {
    OpenDialog1->Execute();
    Image1->Picture->LoadFromFile (OpenDialog1->FileName);
    Inhalt = OpenDialog1->FileName;
    Bild = Inhalt.SubString (Inhalt.Length()-7, Inhalt.Length());
    Edit11->Text = Bild;
    }
    catch (...)
    {
    Application->MessageBox ("Fehler beim öffnen", "", 0+48);
    

    Und hier der Code für das Speichern der Datei:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    try
    {
    Autoname = Edit9->Text;
    Kategorie = Edit2->Text;
    Stand = Edit6->Text;
    Leistung = Edit7->Text;
    Ezl = Edit8->Text;
    Tuev = Edit1->Text;
    Au = Edit5->Text;
    Farbe = Edit4->Text;
    Preis = Edit3->Text;
    Bemerkungen = Memo1->Text;
    BildName = Edit11->Text;
    Details = new TStringList;
    Details->LoadFromFile (Quelle);
    Details->Insert(3,Autoname);
    Details->Insert(36,Autoname);
    Details->Insert(41,BildName);
    Details->Insert(49,Kategorie);
    Details->Insert(59,Stand);
    Details->Insert(69,Leistung);
    Details->Insert(79,Ezl);
    Details->Insert(89,Tuev);
    Details->Insert(99,Au);
    Details->Insert(109,Farbe);
    Details->Insert(119,Preis);
    Details->Insert(128,Bemerkungen);
    Details->SaveToFile (Dateiname);
    }
    catch (...)
    {
    Application->MessageBox ("Fehler beim Speichern der Datei", "Achtung", 0+48);
    

    Ok, der Code ist vielleicht nicht der beste, aber das spielt hier ja jetzt nicht die Rolle...
    Sieht jemand das Problem?? Ich nämlich nicht... Wenn ihr noch mehr Fragen dazu habt, wie das Ding funktionieren soll, dann fragt einfach! (Kann halt nicht so gut erklären...)
    Danke euch einfach schonmal im Vorraus...
    MfG, Michi



  • ^Versteh ich tatsächlich nicht ganz, wo liegt denn genau der Fehler? Was heisst "Datei kann nicht gespeichert werden"? Meinst du dass wenn ein Bild ausgewählt wurde, bei der HTML Datei eine Exception auftritt? Oder passiert nur einfach nix?

    Mal so am Rande:

    1. Es gibt da praktische Funktionen wie ExtractFileExt, ExtractFilePath etc., da muss man nicht immer mit SubStrings arbeiten.
    2. Ich hoffe du deletest deine TstringList ganz am ende, ja? 😉


  • Also, wenn ich gar nichts mit dem Bild mache, also keine Datei da auswähle, dann funktioniert alles, wie es soll. Doch wenn ich ein Bild angebe, kommt als Fehler, dass die Datei (quelle.htm) nicht geladen werden kann. (Dann kommt auch dieses Fenster mit den CPU Anzeigen und so...)
    Dankeschön schonmal für die Befehle... Kannte ich nicht. Bin ja auch noch nicht lange unter den "C++ ern"!
    Ja klar lösche ich das zu Schluss wieder *fg* 😉

    Hast du ne Idee, wo der Fehler liegt/liegen könnte??



  • Ich kann jetzt keinen Fehler entdecken. Wenn dich das nicht stört kannste mir ja das Projekt mit allem drum und dran schicken ( triph@triph.de), ansonsten find ich den Fehler auch grad nicht.



  • Du solltest unbedingt an deinem Programmierstil arbeiten. Folgende Punkte stechen ins Auge:

    1. Nichts ist kommentiert
    2. Nichts ist eingerückt => Codeformatierung! Absätze etc. Leerzeichen und Returns kosten nix und schaffen übersicht!
    3. Komponentennamen katastrophal gewählt. Statt den Edits einen sinnvollen Namen zu geben, behälst du einfach die standard-BCB-Namensgebung bei... führt nicht sehr zu übersicht.
    4. Wieso speicherst du erst die Werte der Edit-Felder in Variablen zwischen?

    -junix

    [ Dieser Beitrag wurde am 19.02.2003 um 22:15 Uhr von junix editiert. ]



  • An TripH: Das wäre echt nett... Werde dir das dann morgen (glaube ich) mal zuschicken...
    An junix: Ich habe das ganze noch nicht formatiert, da ich das heute nur schnell gemacht habe. Dabei ist dieser Fehler aufgetreten, und hab mich noch gar nicht ums "äußere" gekümmert. Klar, normalerweise sollte man sowas sofort machen, da es hinterher mehr Arbeit wird, aber wie gesagt, von dem Programm ist ja (fast) noch nichts fertig... (und für diese paar Zeilen Kommentare schreiben? ich weiß nicht... Bei größeren Dinge aber auf jeden Fall!! Werd mir aber merken, und demnächt auch, dir, und mir zuliebe einhalten!!!



  • Du solltest dir angewöhnen, Formatierungen sofort - sprich während dem Schreiben des Codes - zu machen. es hilft dir selber beim Debuggen, beim Lesen der sourcen, etc.

    Übrigens würde ich dir empfehlen den Debugger mal selber zu bemühen und den Fehler selbst auch genauer zu suchen.

    -junix


Anmelden zum Antworten