Textdatei auslesen!
-
BorlandNewbie schrieb:
das problem liegt ja darin das er das beim Start des Programms auslesen soll....
Dann Versuchs doch ma, indem du dem code, in das Ereignis "OnCreate" deiner Hauptform schreibst. Dann haste beim Start deiner Anwendung!
-
Wunderbar danke! Es funktioniert! Tja man sollte doch nicht immer gleich aufgeben
Habe es so gelöst: (Auch für andere!
)
//--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { ListBox1->Items->LoadFromFile("C:\\Cars.txt"); } //---------------------------------------------------------------------------
-
Aber jetzt habe ich ein anderes Problem:
Jetzt läd er ja in die erste ListBox den Inhalt der Datei, das ist ja super! Jetzt soll er aber bei einer bestimmten Auswahl in Listbox2 einen weiteren Inhalt ausgeben.
Also bei Click in auf ein Punkt von ListBox1 ausgabe Textdatei in Listbox2!
Mein Code sieht momentan so aus, aber da läd er ja bei jedem Klick in ListBox1 den Inhalt von 2!
//--------------------------------------------------------------------------- void __fastcall TForm1::ListBox1Click(TObject *Sender) { ListBox2->Items->LoadFromFile("C:\\seller.txt"); } //---------------------------------------------------------------------------
Vorschläge werden gerne angenommen :p
-
BorlandNewbie schrieb:
Also bei Click in auf ein Punkt von ListBox1 ausgabe Textdatei in Listbox2!
Was ist Bedeutung von dies?
Gruß,
Alexander
-
Alexander Kempf schrieb:
BorlandNewbie schrieb:
Also bei Click in auf ein Punkt von ListBox1 ausgabe Textdatei in Listbox2!
Was ist Bedeutung von dies?
Gruß,
Alexander
Aus meiner Textdatei in ListBox1 werden 5 Beschreibungen augelesen und untereinander in ListBox1 eingefügt!
Jetzt möchte ich durch klick auf die erste Beschreibung in ListBox1, in ListBox2 weitere Auswahlmöglichkeiten haben die auch aus einer Datei geladen werden!OK?
-
Du willst also in Abhängigkeit von dem ausgewählten Item der ersten ListBox
die zweite mit dem Inhalt einer Datei füllen. Wenn Du das nur über den Index
(ItemIndex) machst, mußt Du schon vor dem Laden der ersten Datei wissen, was
in der Datei steht - was sinnlos wäre. Sinnvoll wäre nur, wenn Du den ausge-
wählten Inhalt des Items betrachtest und danach entscheidest, welche Datei
in die zweite ListBox eingelesen wird. Also z.B. der Inhalt der ersten Datei
sind Dateinamen und ein Click auf ein Item lädt die entsprechende Datei in
die zweite ListBox.
Also ItemIndex ist der aktuell ausgewählte Index, über diesen kannst Du mit
Items->Strings[ItemIndex] auf den Inhalt zugreifen.Gruß,
Alexander
-
Alexander Kempf schrieb:
Du willst also in Abhängigkeit von dem ausgewählten Item der ersten ListBox
die zweite mit dem Inhalt einer Datei füllen. Wenn Du das nur über den Index
(ItemIndex) machst, mußt Du schon vor dem Laden der ersten Datei wissen, was
in der Datei steht - was sinnlos wäre. Sinnvoll wäre nur, wenn Du den ausge-
wählten Inhalt des Items betrachtest und danach entscheidest, welche Datei
in die zweite ListBox eingelesen wird. Also z.B. der Inhalt der ersten Datei
sind Dateinamen und ein Click auf ein Item lädt die entsprechende Datei in
die zweite ListBox.
Also ItemIndex ist der aktuell ausgewählte Index, über diesen kannst Du mit
über Items->Strings[ItemIndex] auf den Inhalt zugreifen.Gruß,
Alexander
Was?
Ich versteh nur Bahnhof!
Vielleicht ein Beispiel zur Veranschaulichung? Danke!
Hier meine *.cpp in der es steht wie ich es momentan habe!!!
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "info.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "trayicon" #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { ListBox1->ItemIndex->LoadFromFile("C:\\Cars.f2f"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Info1Click(TObject *Sender) { AboutBox->ShowModal(); } //--------------------------------------------------------------------------- void __fastcall TForm1::ffnen1Click(TObject *Sender) { TOpenDialog *DurchsuchDialog = new TOpenDialog(this); if (DurchsuchDialog) { DurchsuchDialog->Filter = "Alle Dateien (*.*)|*.*"; DurchsuchDialog->FileName = "*.*"; if (DurchsuchDialog->Execute()) { } } if (DurchsuchDialog) delete DurchsuchDialog; } //--------------------------------------------------------------------------- void __fastcall TForm1::Beenden1Click(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TForm1::ListBox1Click(TObject *Sender) { ListBox2->Items->LoadFromFile("C:\\seller.f2f"); Image1->Picture->LoadFromFile("C:\\Astra.jpg"); } //--------------------------------------------------------------------------- void __fastcall TForm1::ListBox2Click(TObject *Sender) { ListBox3->Items->LoadFromFile("C:\\cardetail.f2f"); } //-------------------------------------------------------
-
... diese Art eine Listbox zufüllen kann man das nicht auch die Werte aus einer DB nehmen? oder geht das nicht und wenn das geht wie ? ...
-
Sicher kann man das auch aus eine DB holen, aber für das wo ich es brauche, geht auch eine Textdatei!
Hat jemand eine Beispiel für meine Frage eben?
-
Ich kann anhand des Quelltextes leider immer noch nicht so richtig Dein Ziel
erkennen. Abgesehen davon, kann ich mir nur schwer vorstellen, daß dieser
Code kompiliert:BorlandNewbie schrieb:
ListBox1->ItemIndex->LoadFromFile("C:\\Cars.f2f");
Versuche doch mal, Deine Gedanken zu sortieren und dann hier klar zu
formulieren. Vielleicht erledigt sich dann schon einiges von selbst oder
es kann Dir hier jemand helfen.Gruß,
Alexander
-
Ne der funktioniert ja auch nicht
War falsch eingestellt!
Also nochmal
In der 1. Listbox steht der Inhalt den ich geladen habe! Sieht wie folgt aus:
ListBox1:
--------------
|Opel |
|VW |
--------------ListBox2:
--------------
| |
| |
--------------ListBox2 ist leer!
Jetzt möchte ich bei Klick auf Opel das in der 2. Listbox ein anderer Inhalt geladen wird, so zb.:
ListBox1:
--------------
|Opel |
|VW |
--------------ListBox2:
--------------
|Räder |
|Tuning |
--------------Jetzt alles klar? :p
-
Meine Frage ist: Wenn ich in der ersten ListBox Opel wähle, wird dann die
zweite ListBox mit anderen Einträgen gefüllt, als wenn ich VW wähle?
Und, wenn ja, wovon hängt das ab?Gruß,
Alexander
-
Alexander Kempf schrieb:
Meine Frage ist: Wenn ich in der ersten ListBox Opel wähle, wird dann die
zweite ListBox mit anderen Einträgen gefüllt, als wenn ich VW wähle?
Und, wenn ja, wovon hängt das ab?Gruß,
Alexander
Ja genau es werden immer andere Einträge eingefügt!
Abhäng? Ist doch klar, hast du dir doch oben beantortetWenn ich in der ersten ListBox Opel wähle, wird dann die
zweite ListBox mit anderen Einträgen gefüllt, als wenn ich VW wähle?Hilft dir das?
-
Mal konkret: Ich wähle den ersten Eintrag (ItemIndex=0) der ersten ListBox.
Dieser Eintrag trägt die Beschriftung "Opel" (ListBox1->Items->Strings[0] =
"Opel").
Jetzt soll die zweite ListBox aus einer Datei gefüllt werden. Wovon hängt es
ab, welche Datei gelesen wird?1. Möglichkeit: Zuordnung über ItemIndex. Erster Eintrag gewählt (ItemIndex=0)
heißt >>lade Datei "xyz"<<. Zweiter Eintrag gewählt heißt >>lade Datei "abc"<<2. Möglichkeit: Zuordnung über die Beschriftung. Erster Eintrag ("Opel") ge-
wählt heißt >>lade Datei "Opel"<<. Zweiter Eintrag gewählt heißt >>lade Datei
"VW"<<Bei der ersten Möglichkeit, mußt Du vor dem Laden der ersten ListBox bereits
wissen, welche Einträge in der Datei sind. Das ist recht sinnlos, denn dann
kannst Du auch alles direkt im Objektinspektor eintragen.
Die zweite Möglichkeit ist flexibler, da hier die Einträge in der ersten Datei
als Dateinamen interpretiert werden.Wie findest Du raus, wie Du die zweite ListBox füllen mußt?
Gruß,
Alexander
-
Alexander Kempf schrieb:
Mal konkret: Ich wähle den ersten Eintrag (ItemIndex=0) der ersten ListBox.
Dieser Eintrag trägt die Beschriftung "Opel" (ListBox1->Items->Strings[0] =
"Opel").
Jetzt soll die zweite ListBox aus einer Datei gefüllt werden. Wovon hängt es
ab, welche Datei gelesen wird?Antwort: Es hängt von der Auswahl in der ersten ListBox ab, weil wenn ich Opel wähle brauch ich einen anderen Inhalt in ListBox2, als wenn ich VW auswähle!
1. Möglichkeit: Zuordnung über ItemIndex. Erster Eintrag gewählt (ItemIndex=0)
heißt >>lade Datei "xyz"<<. Zweiter Eintrag gewählt heißt >>lade Datei "abc"<<2. Möglichkeit: Zuordnung über die Beschriftung. Erster Eintrag ("Opel") ge-
wählt heißt >>lade Datei "Opel"<<. Zweiter Eintrag gewählt heißt >>lade Datei
"VW"<<**Antwort:**Die Möglichkeiten hören sich sehr gut an, aber mal wirklich für ein Newbie wie mich ist was Codemäßiges besser, da ich das da sehen kann!
Bei der ersten Möglichkeit, mußt Du vor dem Laden der ersten ListBox bereits
wissen, welche Einträge in der Datei sind. Das ist recht sinnlos, denn dann
kannst Du auch alles direkt im Objektinspektor eintragen.
Die zweite Möglichkeit ist flexibler, da hier die Einträge in der ersten Datei
als Dateinamen interpretiert werden.Wie findest Du raus, wie Du die zweite ListBox füllen mußt?
**Antwort:**Das geschied durch die Auswahl in ListBox1!
Gruß,
Alexander
Meinste jetzt bekommen wir eine Lösung?
-
BorlandNewbie schrieb:
Meinste jetzt bekommen wir eine Lösung?
Nicht, wenn Du weiter mit solchen Banalitäten antwortest.
Gruß,
Alexander
-
Alexander Kempf schrieb:
BorlandNewbie schrieb:
Meinste jetzt bekommen wir eine Lösung?
Nicht, wenn Du weiter mit solchen Banalitäten antwortest.
Gruß,
Alexander
Hey das war nicht böse gemeint...würde mich echt über deine Hilfe freuen...BITTE!!!!
-
Alexander Kempf schrieb:
BorlandNewbie schrieb:
Meinste jetzt bekommen wir eine Lösung?
Nicht, wenn Du weiter mit solchen Banalitäten antwortest.
Gruß,
Alexander
Hey das war nicht böse gemeint...würde mich echt über deine Hilfe freuen...BITTE!!!!
-
Alexander Kempf schrieb:
BorlandNewbie schrieb:
Meinste jetzt bekommen wir eine Lösung?
Nicht, wenn Du weiter mit solchen Banalitäten antwortest.
Gruß,
Alexander
Hey das war nicht böse gemeint...würde mich echt über deine Hilfe freuen...BITTE!!!!
-
Alexander Kempf schrieb:
BorlandNewbie schrieb:
Meinste jetzt bekommen wir eine Lösung?
Nicht, wenn Du weiter mit solchen Banalitäten antwortest.
Gruß,
Alexander
Hey das war nicht böse gemeint...würde mich echt über deine Hilfe freuen...BITTE!!!!