Ergebniss von Ausgabe als Text Datei Abspeicher



  • Hallo

    Es gibt hier im Forum ein Tutorial (zu finden über die Hauptseite) die auf diverse Aspekte der VCL eingeht. Ein umfassendes Tutorial zu GUIs wirst du nicht finden, denn das Thema ist viel zu umfangreich. Eventuell ist ein Buch da besser, dazu gibts schon mehrere Threads zu, zu finden über di Suchfunktion.

    Aber wenn ich sowas lese

    Was bedeutet den dieses:

    TStringList *list = new TStringList();

    und was wäre da in meinem Source Code MeinString

    dann bezweifle ich das du wirklich alle Grundlagen-Tutorials gelesen und verstanden hast. Denn das Prinzip der Speicherverwaltung wird zum Beispiel hier erklärt.

    Und ich habe auch schon geschrieben das mithilfe der BCB-Hilfe und C++ Kenntnissen der Einstieg in den Builder ohne weitere Tutorials machbar ist.

    bis bald
    akari



  • In diesem Verzeichnis habe ich die Exe Datei und die heisst Project2.exe
    wie muss ich das dann da in den Source Code eintragen 😕

    E:\borland builder 6\Bin\fahrenheit in celsius umrechnen als windows anwendung\test

    Ich habs jetzt mal so versucht aber da kommt die Fehlermeldung:
    [C++ Fehler] Unit1.cpp(45): E2379 In Anweisung fehlt ;

    Ich weiss nicht was da falsch ist 😞

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button3Click(TObject *Sender)
    {
    Close();        
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    Form1->Edit1->Text="";
    Form1->Edit2->Text="";
    
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    int User,fahr;
    
    User=StrToFloat(Form1->Edit1->Text);
    
    fahr=User*9/5+32;
    
    Form1->Edit2->Text=FloatToStr(fahr);
    
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button4Click(TObject *Sender)
    {
    Edit2->Text ExePath = ExtractFilePath(Application->Project2.exe);
    }
    //---------------------------------------------------------------------------
    


  • Hallo

    Und du willst und weissmachen das du die Grundlagen beherrscht?

    Edit2->Text = ExtractFilePath(Application->ExeName); // ExeName muß bleiben
    

    bis bald
    akari



  • Bassmaster schrieb:

    Ich weiss nicht was da falsch ist 😞

    Edit2->Text ExePath = ExtractFilePath(Application->Project2.exe);
    

    Dann erklär mir doch bitte mal, wie Du an diese Zeile gekommen bist und was sie bewirken soll.



  • k thx akari



  • akari hat doch schon geschrieben was du da angeben mußt. Wenn du seinen Code 1:1 koipiert hättest wäre da kein Problem.



  • Funktioniert nicht mit dem Speichern in den Ausgabe Edit Balken da schreibt der mir nur rein in welchem Verzeichnis die Exe liegt aber der Speichert da nichts ab

    😞



  • Hallo

    Der Computer macht das was du schreibst und nicht das was du meinst.
    Und du sagst ihm : "Schreib den Pfad des Programms in ein Edit". Nicht mehr und nicht weniger. Wenn du irgendwas in den Pfad speichern willst must du das dem Computer auch so sagen. Sprich : Wenn du irgendwo den Dateinamen fürs Speichern angibst must du eben den Wert den du jetzt in das Edit schreibst vor den Dateinamen hängen.

    bis bald
    akari



  • TStringList *list = new TStringList();
    list->Add(DEIN TEXT ODER DER INHALT DEINES FENSTER); // das wie sollte keine frage mehr sein
    list->SaveToFile(DER EXEPATH); // auch hier sollte das wie keine frage sein
    delete list;
    

    also wenn das nicht hilft weis ich auch nicht

    by the way .... BCB hilfe nutzen iss ganz einfach .... anklicken ( in dem falle dein Memo), dann strg F1, dann unter elemente nachschauen WO dein text steht, die hilfe DAZU anschauen und dann findest auch die Methode TStrings::SaveToFile()

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    int User,fahr;

    User=StrToFloat(Form1->Edit1->Text);

    fahr=User*9/5+32;

    Form1->Edit2->Text=FloatToStr(fahr);

    }

    also mal ehrlich .... StrToFloat auf einen INT .... mach doch float User wenn du schon StrToFloat benutzt, was ne verschwendung .... ausserdem find ich ist der Zugriff auf das Edit über Form1->Edit1 überflüssig, du befindest dich bereits in Form1 ... das aber nur n hinweis



  • Ceos du hast es leider nicht verstanden.

    ALSO:

    Ich will das wenn man den Button Ergebnis Speichern anklickt das dann das Ergbenis aus der Edit2 Box sich genau in dem Ordner abspeichert wo auch die Exe Datei liegt. Angenommen ich schicke dir die Datei. Und die Speicherst die Datei auf Laufwerk E: und wenn du dann das Programm startest Speichert der dir das Ergebniss auf Laufwerk C: aber aber nicht auf 😨 so wie es eigentlich sein sollte.

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


  • mal ehrlich du bistn troll oder willst mich provozieren ???

    ExePath = ExtractFilePath(Application->ExeName); // was wird hier wohl rauskommen ?
    ExePath += "EinDateiname.txt" // leider weis ich net ob das letzte backslash abgeschnitten wird
    

    BITTE SCHAU DIR DIE BCB HILFE AN !!!

    zu TStringList und zu Application->ExeName !!!! ich denk mal fast das du hier was falsches reininterpretierst nur weil du nicht in die Hilfe gesehen hast

    by the way ... wenn du eine komplettlösung haben möchtest, dann sag es, ich mach dir dein speichern für 50€



  • Für 50 € das is aber sehr günstig aber ne ich will das ja selber lernen. Trotzdem thx für das Angebot ich hab auch noch ein Buch das hat 1142 das is von diesem Richard Kaiser ich werd da jetzt mal etwas drin lesen. Vielleicht hilft mir das ja mehr weiter.

    trotzdem thx für eure behmühungen.



  • AnsiString workpath = ExtractFilePath(ParamStr(0)); //Arbeitspfad ermitteln
    TStringList *list = new TStringList();              //StringList erzeugen 
    list->Add(Edit2->Text);                             //String aus Edit einfügen
    list->SaveToFile(workpath+"test.txt");              //Speichern in Pfad der exe
    delete list;                                        //Speicher freigeben
    

    und von dem gesparten Geld kaufst Du Dir das Buch von Richard Kaiser!
    Das dürfte hier ziemlich jeder haben.

    Gruß myerscola



  • ParamStr(0)

    gerade den halt ich für kritisch ... unter gewissen umständen beinhaltet der string den pfad nicht .... oder verdreh ich da grad was ?

    ch würd wenn schon dann bei VCL bleiben und mit Application->ExeName arbeiten


Anmelden zum Antworten