Autor Beitrag
MarkusReisser
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mi 08.10.08 20:18 
Hallo,

ich habe eine Textdatei mit einer Liste von Wörtern (Namen von Dateien - Dateiname.Endung)

Nun würde ich gerne diese Wörter in ein StringGrid laden. Das Stringgrid hat ColCount:=1 und der RowCount soll dann halt so lang sein, wie die Anzahl der Wörter in der Textdatei. Damit eben alle Wörter aus der Textdatei in dem StringGrid erscheinen.

Wie realisiere ich das? Habe mir da mal etwas überlegt:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;  // i ist integer für die for schelife
begin
 If Form1.OpenDialog1.Execute
  Then Begin
   with Form1.OpenDialog1 do begin
    assignfile (Datei,Filename); //  Initialisierung (Verbinden) der Dateivariable mit einem Pfad und einem Dateinamen
    reset(Datei); // Datei wird geöffnet    reset = öffnen
     for i:=0 to filesize(Datei) -1 do begin   // filesize ermittelt die zahl der datensätze
      seek(Datei,i);
      read(Datei);
      closefile(Datei);
      with form1.stringgrid1 do begin
       cells[0,i+1]:=Datei;
       end// ende von do begin
      end// ende von do begin
   end// ende von do begin
  end// ende von then begin
end// ende von prozedur


Hat jmd nen Vorschlag?

Ps: Die Textdatei sieht so aus:

Dateiname1.endung
Dateiname2.endung
Dateiname3.endung

Mehr steht nicht in der Textdatei.

Danke schonmal an Alle.

Mfg Markus
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 08.10.08 20:26 
Anderer Vorschlag:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var i: integer;
    sl: TStringlist;
begin
  if OpenDialog1.Execute then
    begin
      sl := TStringList.Create;
      try
        sl.LoadFromFile(OpenDialog1.Filename);
        StringGrid1.RowCount := StringGrid1.FixedRows + sl.Count;
        for i := 0 to Pred(sl.Count) do
          StringGrid1.Cells[0,StringGrid1.FixedRows + i] := sl[i];
      finally
        sl.Free;
      end;
    end;
end;
MarkusReisser Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mi 08.10.08 22:04 
Hallo,

danke das funktioniert super :)

Ich möchte dann natürlich auch mit den eingelesenen Werten etwas machen. Und zwar eine simple HTTP GET Abfrage. Also eine For-Schleife wo eben ein HTTP- GET mit jeder Datei aus der Textdatei durchgeführt wird. Und dann sollen die Namen der Dateien angezeigt werden, wo ein Status 200 beim HTTP Get rauskommt.

Für eine einzelne Datei, die ich angebe und den Pfad fest angegeben habe, habe ich den passenden Code bereits erstellt. Der funktioniert auch sußer. Nur ich weiß nicht, wie ich da jetzt die For-Schleife einbinden soll, damit eben jeder Datename aus der Textdatei verwendet wird.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TForm1.Button1Click(Sender: TObject);
var iCode:integer;
url,DateiHost,response,iCode2:string;
begin
DateiHost:='index.html';
url:='http://www.foobar.de/'+DateiHost+'';
iCode:=-1;
try
IdHTTP1.Head(url);
iCode:=IdHTTP1.ResponseCode;
// Result=200 --> Erfolgreich
except
iCode:=IdHTTP1.ResponseCode;
end// end except
// form1.Edit1.text:=inttostr(iCode);
iCode2:=inttostr(iCode);
response:='Ergebnis: '+DateiHost+' '+iCode2+'';
form1.label2.Caption:=response;
end;


Die DateiHost:='index.html'; müsste ja dann jeweils aus der Textdatei geholt werden.

ausblenden Delphi-Quelltext
1:
2:
3:
iCode2:=inttostr(iCode);
response:='Ergebnis: '+DateiHost+' '+iCode2+'';
form1.label2.Caption:=response;


Damit wird ja der Status zu der Datei ausgegeben. Das müsste ja so umgebaut werden, dass es nicht nur eine Datei mit dem Status 200 Sein könnte, sondern auch mehrere.

Wenn man dann die ganze HTTP Get in eine For-Schleife setzt und dann den Wert des Wortes um eins nach oben setzt, müsste das ja alles durchwandern.

Sehe ich das richtig? Nur ich weiß nicht so recht, wie ich das umsetzen kann :(

Hat da vllt noch jmd eine Idee?

Ich habe mir mal das hier ausgedacht:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
for i := 0 to Pred(sl.Count) do begin
StringGrid1.Cells[0,StringGrid1.FixedRows + i] := sl[i];
DateiHost:=sl[i];
url:='http://www.foobar.de/'+DateiHost+'';
iCode:=-1;
try
IdHTTP1.Head(url);
iCode:=IdHTTP1.ResponseCode;
// Result=200 --> Erfolgreich
except
iCode:=IdHTTP1.ResponseCode;
end// end except
// form1.Edit1.text:=inttostr(iCode);
iCode2:=inttostr(iCode);
response:='Ergebnis: '+DateiHost+' '+iCode2+'';
form1.label2.Caption:=response;
end// end do begin


Das waren nur so meine ersten Gedanken vom Prinzip der Schleife.

Danke schonmal im Vorraus an alle :)

Mfg Markus