Entwickler-Ecke

Dateizugriff - datei öffnen


bigknaller - Mi 14.08.02 11:45
Titel: datei öffnen
bin ein newbie in sachen delphi und hab grad ein programm "Einkaufsliste" für meine mutter gecodet. da kann man die sachen auswählen, die man kauft und die werden dann in einer textdatei gespeichert. also, jetzt meine zwei fragen: wie kann ich die textdatei öffnen. und: wie kann ich die textdatei ausdrucken (Button: "Drucken").
thx im vorraus.


bis11 - Mi 14.08.02 11:51

Hi,

Datei öffnen : OpenDialog1.Filename

Datei ausdrucken mit dem PrintDialog

Zu beidem gibt es ein Beispiel in der Hilfe.


bigknaller - Mi 14.08.02 11:56

nein, kein opendialog. es soll gleich die textdatei geöffnet werden.
und drucken: wenn ich im printdialog auf ok klicke, kommt nichts.
thx


Tino - Mi 14.08.02 12:06

Nimm einfach eine tStringList. Mit dieser ist das Arbeiten recht einfach:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
Var
  SL: tStringList;
Begin
  SL := tStringList.Create;

  // Einträge hinzufügen
  SL.Add ('Äpfel');
  SL.Add ('Kartoffeln');

  // Speichern
  SL.SaveToFile ('c:\Einkaufsliste.txt');

  SL.Free;
End;
Damit erstellst Du eine Datei ("einkaufsliste.txt") mit zwei Zeilen.

Gruß
TINO


knightkiller - Mi 14.08.02 12:08

und um die Liste auszudrucken:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
var sl : TStringlist;
    MyFile: TextFile;
    i : integer;
begin
  sl := TStringlist.create;
  sl.loadfromfile('C:\MeineDatei.txt');
  AssignPrn(MyFile);
  Rewrite(MyFile);
  for i := 0 to sl.count -1 do begin
    WriteLn(MyFile, sl[i]);
  end;
  if not printdialog1.execute then exit;
  System.CloseFile(MyFile);
  FreeAndNil(sl);
end;


gruss k_k


bigknaller - Mi 14.08.02 12:17

danke erstmal, ich hab ja ne stringlist gemacht.dort werden erstmal alle zu erledigenden einkäufe in der stringliste gespeichert und die wird dann in einer textdatei gespeichert (wird die stringliste dann geleert???).
z.B:

Quelltext
1:
if edit1.text<>0 then liste.add(edit1.text);                    
und am ende wird dann ein savedialog geöffnet und die liste kann gespeichert werden.


Tino - Mi 14.08.02 12:22

Dein IF-THEN-Anweisung wird nicht funktionieren. Edit1.Text gibt einen String zurück deshalb musst Du überprüfen ob der String leer ist und nicht ob er 0 ist:

Quelltext
1:
if edit1.text<>'' then liste.add(edit1.text);                    


Gruß
TINO


knightkiller - Mi 14.08.02 12:55

die Stringlist kannst du so leeren:

Quelltext
1:
liste.clear;                    


Arakis - Mi 14.08.02 13:05

bigknaller hat folgendes geschrieben:
dort werden erstmal alle zu erledigenden einkäufe in der stringliste gespeichert und die wird dann in einer textdatei gespeichert (wird die stringliste dann geleert???).


Nein, sie wird nicht geleert.(Ist auch gut so)

Bis dann
user defined image


bigknaller - Mi 14.08.02 13:09

Tino hat folgendes geschrieben:
Dein IF-THEN-Anweisung wird nicht funktionieren. Edit1.Text gibt einen String zurück deshalb musst Du überprüfen ob der String leer ist und nicht ob er 0 ist:

Quelltext
1:
if edit1.text<>'' then liste.add(edit1.text);                    


Gruß
TINO

ja stimmt, so hab ich es ja auch (bin an einem anderen rechner, hab hier den quelltext net).trotzdem thx