Autor Beitrag
potdog
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 20.09.06 20:16 
Hallo Leutz,

habe da mal, schon mit eurer Hilfe, was zusammen gebastelt.

Ich kann mit dieser Anweisung ne Datei Laden und die erste und letzt Zeile löschen, danach lädt er den Rest in ein Memo. Das ganze möchte ich aber mit mehreren gleichzeitig in einem Öffnen vorgang machen.
Es ist quasi eine schleife. Weiß aber nicht was ich hier in einer Schlaufe lassen kann, da mir der Opendialog ja keine Zahl der geöffneten Datei übergibt, oder liege ich da falsch. Könnt Ihr mir helfen?
THX

procedure TForm1.ffnen1Click(Sender: TObject);
var
StringList:TStringlist;
begin

opendialog1.Execute;


StringList:=TStringlist.Create;
try
with StringList do
begin
loadfromfile(opendialog1.FileName);
Delete(0);
Delete(StringList.Count-1);
memo1.Lines.AddStrings(StringList);
end;
finally
StringList.Free;
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Mi 20.09.06 20:31 
Du aktivierst unter TOptions die Eigenschaft ofAllowMultiSelect. Nun geht das so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure TForm1.ffnen1Click(Sender: TObject);
var
StringList: TStringlist;
begin

with opendialog1 do
begin
  if execute then
  begin
     StringList:=TStringlist.Create;
     for i := 0 to Files.Count - 1 do
     begin
        with StringList do
        begin
          loadfromfile(opendialog1.Files[i]);
          Delete(0);
          Delete(StringList.Count-1);
          memo1.Lines.AddStrings(StringList);
       end;
    Free;
    end;
end;
end;

Jetzt einfach so runtergeschrieben, ohne Gewähr auf Fehlerfreiheit etc. ;)

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
potdog Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 20.09.06 20:46 
Titel: Nicht so ganz
Hmm, also mit einer Datei macht er das, genau wie vorher. Aber bei zwei geht er in die Knie.
Die erste Runde läuft er durch (habe mal mit einzelanweisung weiter gemacht)aber in der 2 Runde bricht er bei Zeile : loadfromfile(opendialog1.Files[i]); mit einer Zugriffsverletzung ab. Keine Ahnung warum?
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Do 21.09.06 16:36 
Das Free ist noch in der Zählschleife, muss da raus:
ausblenden Delphi-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:
procedure TForm1.ffnen1Click(Sender: TObject);
var
StringList: TStringlist;
begin

with opendialog1 do
begin
  if execute then
  begin
     StringList:=TStringlist.Create;
     for i := 0 to Files.Count - 1 do
     begin
        with StringList do
        begin
          loadfromfile(opendialog1.Files[i]);
          Delete(0);
          Delete(StringList.Count-1);
          memo1.Lines.AddStrings(StringList);
       end;
    end;
    Free;
  end;
end;
end;

Geht es nun? ;)

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot