Entwickler-Ecke
Dateizugriff - ComboBox Items aus txt-Datei holen
arminho - Do 03.02.05 20:50
Titel: ComboBox Items aus txt-Datei holen
hallo leute, brauche hilfe!
folgendes: ich möchte aus einer txt-Datei die Items für meine Combo Box auslesen. Das funktioniert ja normalerweise mit diesem code:
Delphi-Quelltext
1:
| ComboBox1.Items.LoadFromFile('bremen.txt'); |
jetzt zeigt mir delphi aber jedesmal beim compilieren, dass er die datei nicht finden konnte (bremen.txt). Die Datei habe ich aber erstellt und ins entsprechende Verzeichnes gelegt... woran liegt es? kann mir einer Helfen?
wie müssen die einzelnen Items in der Textdatei angegeben werden?
so:
item1
item2
item3
????
und wie kann ich nur bestimmte zeilen aus der Textdatei rausholen???
z.B. nur den blauen Text hier:
Ich fahr gerne
Fahrrad
danke
Moderiert von
Christian S.: Code- durch Delphi-Tags ersetzt.
Moderiert von
Christian S.: Topic aus VCL (Visual Component Library) verschoben am Do 03.02.2005 um 19:51
arminho - Do 03.02.05 20:56
da kommt die nachricht:
Project Project1.exe raised exception class EFOpenError with message 'Cannot open file "C:\Programme\Borland\Delphi7\Projects\Delphi Projekte\fms\bremen.txt". Das System kann die angegebene Datei nicht finden'. Process stopped. Use Step or Run to continue.
Dann kann ich nur OK oder Help anklicken.
jasocul - Do 03.02.05 21:00
Ich gehe mal davon aus, dass die Datei auch tatsächlich da ist.
Der Fehler kommt übrigens zur Laufzeit. :wink:
Er besagt "nur", dass die Datei nicht geöffnet werden kann. Ist sie vielleicht durch eine andere Anwendung geöffnet? Hast du die noch im Editor auf?
arminho - Do 03.02.05 21:02
die datei ist wirklich in diesem verzeichnis und sie wird auch von keinem anderen programm benutzt... dass ist echt komisch...
wie müssen denn die einzelnen items in der txt angegeben sein? einfach untereinander aufzählen? so hab ich es gemacht...
jasocul - Do 03.02.05 21:09
Deine Datei ist schon OK, wenn du sie so aufgebaut hast.
Im Moment habe ich auch keine gute Idee, warum deine Datei nicht geöffnet werden kann.
Schonmal den Rechner neu gestartet? Eventuell ist die Datei aus anderen Gründen gesperrt. Oder greifst du innerhalb des Programms noch irgendwie darauf zu und sperrst sie vielleicht dadurch.
Bin im Moment überfragt. :nixweiss:
arminho - Do 03.02.05 21:12
ok jetzt hat es geklappt! Aber mein Problem weiterhin: Er zeigt alles was in der TXT Datei ist an.
Ich will aber nur einen Teil.
Hier mein TXT-File:
Name Age Nat St Tk Ps Sh Ag KAb TAb PAb SAb Gam Sav Ktk Kps Sht Gls Ass DP
----------------------------------------------------------------------------------------
D_Wache 31 deu 9 2 3 2 13 300 300 300 300 0 0 0 0 0 0 0
S_Hoffmeister 34 deu 5 1 1 1 17 300 300 300 300 0 0 0 0 0 0 0
C_Wetklo 25 deu 6 1 1 2 13 300 300 300 300 0 0 0 0 0 0 0
ich will jetzt nur das Blaue in die ComboBox!!!
Das bei deinem Link kapier ich nicht ganz... ich brauch nur ein Beispiel, dann lern ich dass schnell!!
Was müsste ich jetzt im code angeben wenn ich das Blaue haben will??
StefanH - Do 03.02.05 21:32
COPY und
POS hilft dir weiter ;)
arminho - Do 03.02.05 21:57
nirgends finde ich wie ich copy und pos für externe dateien also TXT Dateien verwende...
ich krieg das nicht hin.
jasocul - Do 03.02.05 22:11
Nach dem Einlesen der Liste musst du alles Einträge durchgehen und mit den String-Funktionen bearbeiten. Einen Link zur Einführung habe ich dir weiter oben schon gegeben. Es gibt auch noch andere Möglichkeiten. Dazu müsstest du dich aber erstmal mit grundlegenden Datei-Operationen beschäftigen.
Übrigens, woran lag es denn nun, dass die Datei nicht geöffnet werden konnte?
arminho - Do 03.02.05 22:16
keine ahnung woran es lag. ich habe eine neue Datei genommen...
ich müsste also jedesmal nach diesen bestimmten string suchen (mit pos), dann kopieren (copy)!?
dann müsste ich ja jeden String den ich raushaben will also mit pos angeben...
kann ich ihm nicht einfach sagen, dass er im TXT-File z.B. ab Zeile 3 Immer die ersten 14 Stellen kopieren soll und das aus jeder Zeile also sagen wir bis Zeile 20 und diese dann in die ComboBox einfügen soll (als Items)!?
geht das nicht?
jasocul - Fr 04.02.05 09:00
Eine fertige Funktion ist mir dafür nicht bekannt.
chrisw - Fr 04.02.05 10:59
Probiers mal so ähnlich !!
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Button1Click(Sender: TObject); var tempStringList : TStrings; i : Integer; begin tempStringList := TStringList.Create; tempStringList.LoadFromFile('bremen.txt'); tempStringList.Delete(0); tempStringList.Delete(0); for i := 0 to tempStringList.Count -1 do combobox1.Items.Add(copy(tempStringList[i],1,pos(' ',tempStringList[i]))); tempStringList.Free; end; |
arminho - Fr 04.02.05 11:43
klappt wunderbar! ich danke dir chrisw !!! und den anderen natürlich auch für ihre Hilfe.
danke
arminho - Sa 05.02.05 20:23
gut. jetzt hab ich aber das nächste problem: die einzelnen strings wurden jetzt in die combobox eingelesen. super! jetzt soll man ja einen davon auswählen. dies möchte ich dann in eine .txt-Datei speichern... bloß wie?
wie soll ich ihm den sagen, dass er das ausgewählte in die txt-datei speichern soll!?
z.B. soll er den inhalt der combobox1 in zeile 5 der TXT-Datei speichern. Inhalt der Combobox2 in Zeile 6 etc.
ich arbeite ja ganz normal mit dem savedialog.
arminho - Fr 18.02.05 15:08
ok die frage hab ich mir selber beantwortet, aber wie soll ich dass anstellen:
MEINE TXT DATEI SIEHT SO AUS:
teamname
taktikkürzel
GK R_Enke
DF Vinicius
DF D_Zuraw
DF D_Diouf
DF S_Cherundolo
DM T_Schneider
DM M_Tarnat
MF P_Mertesacker
MF G_Agac
AM M_Schinner
FW C_Dabrowski
GK F_Juric
MF M_Idrissou
MF A_Lala
AM J_Kaufman
FW J_Stajner
PK: Elfmeterschütze
AGG AGG
wie soll ich ihm jetzt sagen, dass er z.B. die Namen (blau markiertes beispiel) jeweils in eine bestimmte combobox einfügen soll? Also z.B. R_Enke in ComboBox1 oder J_Stajner in Combobox13 ??? Ich habe jetzt nämlich geschafft, dass alle Namen erstmal in den Comboboxen sind... jetzt kann der User in jeder Combobox einen Namen auswählen und dann speichern. Ich will jetzt aber, dass er es auch laden kann!!! und dazu muss ich die Namen aus der txt rausholen!
danke
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!