Entwickler-Ecke
Dateizugriff - ListBox & Dateien
patrick dee - Do 02.01.03 11:53
Titel: ListBox & Dateien
hallo reader,
Problem:
habe eine ListBox mit div einträgen. Wenn ich nun auf einen klicke soll eine Datei erzeugt werden die IMMER Naps.cc1 heissen soll. in dieser soll dann immer der eintrag aus der listbox stehen. hast du ein beispiel für mich wie so etwas geht ?????
danke
patrick
Jack Falworth - Do 02.01.03 12:53
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure Speichern; var datei: Textfile; begin assignfile (datei, NapsCC1); try rewrite (datei); writeln (datei, Listbox1.ItemIndex); finally closefile (datei); end; end; |
Ich habs nicht geprüft, sollte aber funktionieren. Das ist eine einfache Variante mit einer Textfile.
MfG
Jack Falworth
Delete - Do 02.01.03 15:54
| Jack Falworth hat folgendes geschrieben: |
Ich habs nicht geprüft, sollte aber funktionieren.
Quelltext 1: 2:
| ... writeln (datei, Listbox1.ItemIndex); | |
Kleine Korrektur: mit der Zeile speicherst du die Index-Nr. des ausgewählten Eintrags in der Datei, aber
nicht den String, der dadurch repräsentiert wird. Richtig wäre IMHO
Quelltext
1:
| writeln (datei, Listbox1.Items[Listbox1.ItemIndex]); |
Außerdem würde ich
vor dem Speichern prüfen, ob überhaupt ein Eintrag gewählt wurde. Wenn nicht, ist der ItemIndex -1!
S - tefano - Do 02.01.03 16:04
Hi,
Wenn er die Speichern-Prozedur innerhalb des OnClickEvents aufruft, muss er das nicht machen. Dann hat er nämlich auf jeden Fall einen "gültigen" ItemIndex (der Event wird ja nur ausgelöst, wenn man auf ein Item klickt).
Bis denn,
S - tefano
Jack Falworth - Do 02.01.03 17:32
Mein Fehler, war in Eile. :roll:
MfG
Jack Falworth
Delete - Do 02.01.03 18:17
| S - tefano hat folgendes geschrieben: |
| Wenn er die Speichern-Prozedur innerhalb des OnClickEvents aufruft, muss er das nicht machen. Dann hat er nämlich auf jeden Fall einen "gültigen" ItemIndex (der Event wird ja nur ausgelöst, wenn man auf ein Item klickt). |
Richtig! Aber ich hab´s mir mittlerweile angewöhnt, auf Nummer Sicher zu gehen und lieber eine Prüfung zuviel einzubauen. :) Aber recht hast du trotzdem!
| Jack Falworth hat folgendes geschrieben: |
| Mein Fehler, war in Eile. |
Null Problemo. Passiert schon mal ...
S - tefano - Do 02.01.03 18:53
Am besten gratulieren wir uns einfach zu unserer "Tolligkeit" und das wars dann. 8)
patrick dee - Fr 03.01.03 17:14
hi leute
danke für die vielen antworten. aber wie muß ich das ganze bei mir einbauen ??? in der listbox1 dblclick ???
den ich muß ja noch sagen wohin er die datei legen soll. dies will ich mit edit2.text machen. also wie geht das mit dblclick das in den order zu legen desen pfad ich in edit 2 habe
arbeite mit delphi 6
danke
gruß
patti
Jack Falworth - Fr 03.01.03 19:15
jep baust das in das Doppelclick Ereignis der Listbox ein.
Für den Dateinamen musst du nur die Procedure etwas erweitern.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure Speichern; var datei: Textfile; begin datei:= Edit2.Text; try assignfile (datei, NapsCC1); try rewrite (datei); writeln (datei, Listbox1.Items[Listbox1.ItemIndex]); finally closefile (datei); end; except Showmessage ('Ungueltiger Dateiname!'); end; end; |
Müsste eigentlich funktionieren,
MfG
Jack Falworth
patrick dee - Sa 04.01.03 14:10
hi,
ok habe es so gemacht bekomme aber noch die Fehler:
| Zitat: |
undefinierter bezeichner NapsCC1.
'.' erwartet aber ';' gefunden.
Ungenügend Forward oder External deklaration TForm1.Speichern. |
so habe ich es
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| public { Public-Deklarationen } procedure Speichern;
procedure TForm1.ListBox1DblClick(Sender: TObject); var datei: Textfile; begin datei:= Edit2.Text; try assignfile (datei, rc1); try rewrite (datei); writeln (datei, Listbox1.Items[Listbox1.ItemIndex]); finally closefile (datei); end; except Showmessage ('Ungueltiger Dateiname!'); end; end;
end; |
gruß
patti
(04.01. 23:25 Tino) Code-Tag hinzugefügt.
Jack Falworth - Sa 04.01.03 15:02
ups sorry mein fehler, kann ja so nicht klappen.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure Speichern; var datei: Textfile; dateiname: string; begin dateiname:= Edit2.Text; try assignfile (datei, dateiname); try rewrite (datei); writeln (datei, Listbox1.Items[Listbox1.ItemIndex]); finally closefile (datei); end; except Showmessage ('Ungueltiger Dateiname!'); end; end; |
jetzt nur noch in das Edit Naps.cc1 oder sonstwas eintragen, dann sollte es klappen.
patrick dee - Sa 04.01.03 15:34
hi
programm startet aber nix passiert wollte eigendlich in edit 2 den pfad eingeben wo das ganze abgelegt wird zb F:\Eintrag\
wenn ich jetzt klicke passiert nix auch mit der suchfunktion finde ich im computer nix
gruß
patti
Jack Falworth - Sa 04.01.03 17:29
Ich hab das bei mir jetzt ausprobiert und es funktioniert!!
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| procedure Speichern; var datei: Textfile; dateiname: string; begin dateiname:= Form1.Edit1.Text; try assignfile (datei, dateiname); try rewrite (datei); writeln (datei, Form1.Listbox1.Items[Form1.Listbox1.ItemIndex]); finally closefile (datei); end; except Showmessage ('Ungueltiger Dateiname!'); end; end;
procedure TForm1.ListBox1DblClick(Sender: TObject); begin Speichern; end; |
und als Pfad nimmst du z.b. " ./hallo.cc1 " dann wird die Datei in das aktuelle Verzeichnis gespeichert. Du kannst aber auch jedes x-beliebige Verzeichist benutzen.
Wenn du nur das Verzeichnis reinschreiben willst, dann musst du halt noch eine Procedure schreiben, die an den pfad den dateinamen anhängt.
MfG
Jack Falworth
patrick dee - So 05.01.03 07:14
danke jack
jetzt geht es auch bei mir
gruß
patti :lol:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!