• 27.04.2024, 15:00
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

[Delphi] *.txt und automatischen code erstellen

Donnerstag, 3. Februar 2005, 00:41

so... da mir langweilig war... und ich mal fit genug für meine info note bleiben muss (ok, das ist nicht schwer ;D ) hab ich beschlossen, nen einfaches adressbuch zu machen. bis jetzt hab ich ne schöne oberfläche, kann die adressen aus einer txt-datei lesen und auch in einer txt-datei speichern. die entsprechende datei wird automatisch (gerade hingekriegt ;D) so gespeichert, wie ich es will/angebe.
nun sieht mein eigentliches programm folgendermaßen aus:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.Button0Click(Sender: TObject);
var i: integer;
      s: TStringList;
begin
  try
  s:= TStringList.Create;
  s.LoadFromFile('H:\Delphi\adressbuch\adressen\angeldust.txt');
  for i:=0 to 5 do
  (FindComponent('Edit' + IntToStr(i)) as TEdit).Text := s[i];
  finally
  s.Free;
end;
end;

wenn ich nun eine datei unter dem namen TEST.txt speicher, so müsste das programm automatisch den code-teil von oben neu einfügen und entsprechend anpassen. in diesem fall müssste der automatische code so aussehen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.Button0Click(Sender: TObject);
var i: integer;
      s: TStringList;
begin
  try
  s:= TStringList.Create;
  s.LoadFromFile('H:\Delphi\adressbuch\adressen\TEST.txt');
  for i:=0 to 5 do
  (FindComponent('Edit' + IntToStr(i)) as TEdit).Text := s[i];
  finally
  s.Free;
end;
end;

auf den teil mit dem button müsst ihr nicht achten, das will ich später eh noch ändern.

ich hoffe mal, dass hier einer ist, der mein problem versteht und auch eine lösung dafür kennt.

Re: [Delphi] *.txt und automatischen code erstelle

Freitag, 4. Februar 2005, 01:32

Moin,

Ähm sorry ... aber ich sehe nicht ein Fragezeichen in deinem Post ...

MfG TrOuble

Re: [Delphi] *.txt und automatischen code erstelle

Freitag, 4. Februar 2005, 01:53

hmmm, den Dateinamen als Paramter an die Ladefunktion übergeben?... ::) ::) ::) ::) ::) ::)
c++: The power, elegance and simplicity of a hand grenade.

Re: [Delphi] *.txt und automatischen code erstelle

Freitag, 4. Februar 2005, 16:33

Zitat von »Clark«

hmmm, den Dateinamen als Paramter an die Ladefunktion übergeben?...  ::) ::) ::) ::) ::) ::)

hm... hab ich das nu richtig verstenden? mein code sieht nun so aus:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
      s: TStringList;
begin
  try
  s:= TStringList.Create;
  s.LoadFromFile(edit6.text+'\'+Button1.caption+'.txt');
  for i:=0 to 5 do
  (FindComponent('Edit' + IntToStr(i)) as TEdit).Text := s[i];
  finally
  s.Free;
end;
end;

erklärung: edit6 ist das feld, in dem der speicherort der adressen angegeben ist, butto1.caption ist eben die caption von button1 :P
soweit klappt das ja auch... hm... oder... ich probier mal von den buttons wegzugehen und stattdessen nehm ich eine liste... dort sollte das hinzufügen auch einfacher sein *g

Re: [Delphi] *.txt und automatischen code erstelle

Samstag, 5. Februar 2005, 00:59

ich verstehe jetzt nicht recht, was du möchtest.
Aber wenn ich mir deinen Code so ansehe, dann lädst du doch die ganze Zeit deine Datei. Aber möchtest du sie nicht speichern?

Quellcode

1
s.LoadFromFile('H:\Delphi\adressbuch\adressen\test.txt');


damit lädst du doch.

Bin mir halt nicht ganz sicher, ob ich alles richtig verstanden habe.

MfG Ithen
Mein PC: P4 2,8c @ 3,0 ghz 2x512MB GF4 4200TI 128MB 225/444 @ 281/490

Re: [Delphi] *.txt und automatischen code erstelle

Samstag, 5. Februar 2005, 03:01

das ist schon richtig so... der code-teil oben ist ja nur fürs auslesen der datei zuständig. gespeichert wird mit nem anderen button -> anderer code-teil *g

Re: [Delphi] *.txt und automatischen code erstelle

Samstag, 5. Februar 2005, 14:42

Also ich sehe auch nicht, was du jetzt eigentlich wissen willst? Formulier doch mal eine direkte Frage, worin das Problem besteht.

Ansonsten: Das ganze wird übersichtlicher, wenn du zusammengehörige Schleifenteile einrückst, z.B.

Quellcode

1
2
3
4
5
6
7
begin
   try
           hier steht eine anweisung
   finally
           hier ebenso
   end;
end;


Und der Stringliste würde ich einen Aussagekräftigeren Namen geben, z.B. "SList" oder so, das macht den Code insgesamt übersichtlicher (gerade wenns irgendwann mal größere Projekte werden, ich hab mir z.B. auch angewöhnt, die Namensgebung der Komponenten mit ner groen Bezeichnung und ner kleinen Beschreibung zu versehen, z.B. "BThilfe" (Hilfebutton), Mbeenden (Menu->Beenden), "LBausgabe" (Label für die Ausgabe), ebenso ein einheitliches Schema für Variablen, usw., das macht das ganze viel übersichtlicher.

wenn du jetzt noch sagst, was du wissen willst, klappts vielleicht auch mit dem Adressbuch ::).

cya
x-stars
"Live free or die: Death is not the worst of evils."

Re: [Delphi] *.txt und automatischen code erstelle

Samstag, 5. Februar 2005, 16:46

Als Quelle für den Dateinamen die Caption von einem Button zu nehmen ist schon etwas ungeschickt. In Windows gibt es dafür entsprechende FileOpen und FileSave Dialoge, die Dir dann auch den Dateinamen+Pfad liefern. Alternativ könntest Du noch ein einfaches Textfeld in Deinem Formular hernehmen, in dem Du dann den Dateinamen + ggf. Pfad zu Laden und Speichern der Datei selbst eingeben musst.