Textdatei auslesen!



  • *imkreisumherspring* so werd jetzt mal damit auch JANSEN glücklich und froh ist den code hier reinstellen und in meiner Frage auch damit andere DUMMIES ihn auch finden 🙂

    void __fastcall TForm2::FormCreate(TObject *Sender)
    {
    
       int i;
       Query2->SQL->Clear();
       Query2->SQL->Add( "Select Name from Bilder" );
       Query2->Open();
       for ( i=0; i< Query2->RecordCount; i++ )
            {
            ListBox1->Items->Add ( Query2->FieldByName("Name")->AsString );
            Query2->Next();
            }
    
    }
    

    ich hatte das fast so ähnlich bloss das ich das mit AsString vergass *G*. Frage neben bei muss ich alles was ich aus der DB hole immer in einen String umwandeln ?



  • erst mal so welche Version von BCB benutzt du dann kann ich dir genau sagen wie das mit der DB einbindung genau vor sich geht :). Hab das auch vor kurzen alles durch deshalb weiß ich das ganze noch 🤡 .



  • Fantasyfr schrieb:

    damit auch JANSEN glücklich und froh ist

    1. Siehe FAQ, "Datenbank - Ergebnisse von SELECT verarbeiten"

    2. http://www.c-plusplus.net/forum/viewtopic.php?t=69193


  • Mod

    Hallo

    @Fantasyfr

    bitte schreib SQL-Befehle gross (->Standard)

    Select -> SELECT
    usw.

    MfG
    Klaus



  • AAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHH!!!!!
    Bitte nicht! Was wollt ihr denn für so nen Pippifax ne superfette Datenbank herbeiziehen??!! Und das für einen Newbie... Bitte lasst das.

    @Newbie: Mach das so, wie es dir gesagt wurde. Erstelle dir Dateien "VW.txt", "Opel.txt" usw., in die du sowas wie "Reifen" usw. reinschreibst. Das soll dann jeweils in ListBox2 angezeigt werden. Das große Problem für dich ist jetzt immernoch die Umsetzung.
    Du fragst dich: Wenn der User auf "Opel" klickt, wie finde ich dann heraus, dass er eben genau auf "Opel" geklickt hat. Für das Auslösen eines Mausklicks in der ListBox gibt es 2 Events. Finde diese heraus und wähle eines davon für deine Routine. In der Routine musst du dann noch herausfinden, welches Item angeklickt wurde (in unserem Fall "Opel"). Dazu hat TListBox eine Eigenschaft, deren Namen ich dir schon genannt und fett gemacht habe. Diese Eigenschaft ist vom Typ TStrings. Unter den Eigenschaften von TStrings wiederum findest du diejenige, die dich an dein Ziel bringt.

    P.S.: Wenn dir diese Tipps und die BCB-Hilfe nicht reichen, rate ich dir dringendst, dir mal ein C++-Tutorial anzuschauen.



  • Erstmal vielen Dank nochmal....

    So bin jetzt schon etwas weiter! Der Quelltext sieht im Abschnitt so aus:

    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
            TStringList *list = new TStringList();
            list->LoadFromFile("Cars.f2f");
            String str = list->Text;
            delete list;
    
            ListBox1->Items->LoadFromFile("Cars.f2f");
    

    Nur wie kann ich jetzt alle Strings aufrufen und in Listbox1 schreiben lassen?
    Weil so wie hier:

    ListBox1->Items->LoadFromFile("Cars.f2f");
    

    geht das sicher nicht! 🙂



  • Hallo,

    Wieso sollte das nicht gehen. Wenn es mit deiner StringList geht muss es auch mit ListBox1->Items gehen. Mir ist nur nicht klar wieso du alles vorher in eine StringList und dann in einen String packst.



  • So nun habe ich es hinbekommen das der Inhalt in ListBox1 eingefügt wird, sieht wie folgt aus:

    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {       TStringList *list = new TStringList();
            list->LoadFromFile("Cars.f2f");
            ListBox1->Items->AddStrings(list);
            delete list;
    

    Das Problem ist nur, wie sage ich ihm jetzt das er beim Klick auf den ersten Eintrag in ListBox1, in ListBox2 die Datei "seller.txt" lädt? 😕



  • Ich weiß das ich vielleicht nerve, aber kann mir den niemand helfen?
    Ich sitze seit heute morgen um 8 Uhr hier, aber es funktioniert immernoch nicht! 😞


  • Mod

    Hallo

    geh doch einfach her und verwende ListBox1->OnChange

    im OnChange-Ereignis schaust du nach was denn angeklickt wurde
    je nachdem laedst du in ListBox2 eine andere Datei
    usw.

    MfG
    Klaus



  • BorlandNewbie schrieb:

    Weil so wie hier:

    ListBox1->Items->LoadFromFile("Cars.f2f");
    

    geht das sicher nicht! 🙂

    Doch, genau so geht das! Hattest du doch vorher auch schon. Das war doch gar nicht mehr das Problem.



  • Ne das war es ja auch nicht mehr, habe doch unter den Beitrag geschrieben das es geht 🙂

    Aber nun mal zu Klaus seiner Antwort!
    Was soll ich den nun nehmen? Der eine sagt was mit Item,StringList und so, der andere wieder was mit OnChange!!!

    Als Newbie blickste da jetzt garnicht mehr durch! SOORRYY!!!

    Könntet ihr mir mal detalliert auf die Sprünge helfen? 😕

    Danke! 😃


  • Mod

    Hallo

    bei OcChange war ich wohl falsch gelegen (ist bei ComboBox)

    Verwende OnClick (deiner ListBox)

    in OnClick wertest du aus welcher Eintrag gewaehlt wurde
    dann weist du welche Datei du in ListBox2 einlesen musst
    usw.

    ansonsten

    1. mach dir erstmal einen Plan
    2. der Gebrauch der F1-Taste ist zu empfehlen
    3. schau dir alles zu Listbox mal an (F1)
    4. lass dich nicht entmutigen

    MfG
    Klaus



  • Hey Klaus, noch ein letzten Tipp bitte!!!

    Zeig mir mal ein Beispiel - Code dazu, bitte!

    Vielen DAnk! :p



  • Das waren doch schon ganze 4 Tipps. An deiner Stelle würde ich mein Augenmerk besonders auf Nummer 2 und 3 legen. :p



  • Ihr seit ein paar Spassvögel 🙂

    Ich glaube ihr wisst besser das zu ListBox (F1) soviel steht das man als Newbie garnicht weiß was man lesen soll! Ihr könntet mir ja mal ein Tipp in der Hilfe geben wo ich gucken soll 🙂

    Danke

    MFG


  • Mod

    Hallo

    OnClick habe ich doch schon gesagt 😡

    in OnClick auswerten welcher Eintrag gewaehlt wurde ebenfalls 😡

    ListBox2 mit der gewaehlten Datei fuellen auch 😡

    Wo hast du denn noch Probleme 😕

    MfG
    Klaus



  • So also jetzt ist es ganz vorbei!!! 🙂

    void __fastcall TForm1::ListBox1Click(TObject *Sender)
    {
            if(OnClick ListBox1->Items->Strings[0]=="Opel")
            {
            Image1->Picture->LoadFromFile("Astra.jpg");
            ListBox2->Items->LoadFromFile("seller.f2f");
            }
    }
    

    Ist weiß das das falsch ist, aber nicht was daran 🙂
    Und?



  • Und niemand ne Ahnung? 😕 :p



  • if(ListBox1->Items->Strings[ListBox1->ItemIndex]=="Opel")

    Beschäftige dich bitte dringends mit den Grundlagen. Am besten nimm dir das Texteditortutorial (oder ein anderes) mal vor. Wenn du bei jeder Codezeile nachfragen willst nimmt das hier kein Ende.


Anmelden zum Antworten