Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Textdatei einlesen u. drucken (https://www.delphipraxis.net/66756-textdatei-einlesen-u-drucken.html)

Sturmrider 3. Apr 2006 20:27

Re: Textdatei einlesen u. drucken
 
Achso procedure GridDruck(grd:TStringGrid;links,oben:word;scal:dou ble); muss in eine eigene Unit?
Ich habe bisher nur eine Unit (nämlich: Unit1.pas)
Muss ich eine neue Unit mit dem namen SysUtils anlegen?

mkinzler 3. Apr 2006 20:31

Re: Textdatei einlesen u. drucken
 
Zitat:

Zitat von Sturmrider
Achso procedure GridDruck(grd:TStringGrid;links,oben:word;scal:dou ble); muss in eine eigene Unit?
Ich habe bisher nur eine Unit (nämlich: Unit1.pas)

Nein, sie kann in der selben Unit sein. es würde sich aber anbieten diese in eine andere Unit auszulagern, zwecks Wiederverwendung.
M
Zitat:

uss ich eine neue Unit mit dem namen SysUtils anlegen?
Nein, auf keinen Fall. sysUtils ist eine Standard-Unit in der sich u.a. die Funktion StringReplace befindet.

Benedikt 3. Apr 2006 20:36

Re: Textdatei einlesen u. drucken
 
Hi,

ich mein ja nur mal so, aber die Funktion die du da oben zum Einlesen der Datei in dein StringGrid benutzt, ist ja nicht sooo das wahre...

Delphi-Quellcode:
procedure TForm1.DruckenClick(Sender: TObject);
var
  SlFile: TStringList;
  SlLine: TStringList;
  i: Integer;
  j: Integer;
begin
  SlFile:=TStringList.Create;
  SlLine:=TStringList.Create;
  SlFile.LoadFromFile('pfad zu deiner datei');

  for i:=0 to SlFile.Count-1 do
  begin
        SlLine.Clear;
        SlLine.Delimiter:='|';
        SlLine.DelimitedText:=SlFile[i];

        for j:=0 to SlLine.Count-1 do
                StringGrid1.Cells[j, i]:=SlLine.Strings[j];
  end;

  //hier könntest du jetzt die GridDruck-Prozedur aufrufen.

  FreeAndNil(SlFile);
  FreeAndNil(SlLine);
end;

mkinzler 3. Apr 2006 20:58

Re: Textdatei einlesen u. drucken
 
Zitat:

Zitat von Benedikt
ich mein ja nur mal so, aber die Funktion die du da oben zum Einlesen der Datei in dein StringGrid benutzt, ist ja nicht sooo das wahre...

Warum nicht?

Benedikt 3. Apr 2006 21:02

Re: Textdatei einlesen u. drucken
 
Also sieh dir das mal an hier:

Delphi-Quellcode:
procedure TForm1.DruckenClick(Sender: TObject);
var
  sl: TStrings;
  tf: TextFile;
  s: string;
begin
  sl := TStringList.Create;
  sl.StringReplace( s, '|', ',', rfReplaceAll);
  AssignFile('posts.ini', tf);
  Reset( tf);
  while not eof( tf) do
  begin
    ReadLn( tf, s);
    sl.StringReplace( s, '|', ',', rfReplaceAll) := s;
  end;
  CloseFile(tf);

    for i := 0 to sl.Count do
    begin
      StringGrid.Cells[i,j] := sl.Strings[i]
    end;
    inc(j);

    griddruck(stringgrid,0,0,1);


end;
Kein Wunder das davon nichts geht? Da würden Fehlermeldungen wegen Listen-Index kommen, StringReplace ist keine Untermethode von TStringList und zudem Überflüssig, und auch sonst ist das etwas umständlich meiner Meinung nach...

mkinzler 3. Apr 2006 21:12

Re: Textdatei einlesen u. drucken
 
Zitat:

StringReplace ist ... Überflüssig, und auch sonst ist das etwas umständlich meiner Meinung nach...
Aber notwendig, da Delimiter/DelimitedText erst ab D6 vorhanden sind. Anfänglich war dies ja auch so im Code.
Zitat:

StringReplace ist keine Untermethode von TStringList
Da hat er mich falsch verstanden, hatte ihm geraten statt .DelimitedText .CommaText zu nehmen und vorher die Pipes durch Kommas zu ersetzen. Also:

Delphi-Quellcode:
sl.CommText := StringReplace( s, '|', ',', rfReplaceAll);
Hab sein Post nicht mehr durchgelesen und deshalb die Fehler übersehen ;-(

[Edit: Vetippt noch mal!]

Benedikt 3. Apr 2006 21:15

Re: Textdatei einlesen u. drucken
 
Zitat:

Zitat von mkinzler
Aber notwendig, da Delimiter/DelimitedText erst ab D6 vorhanden sind.

Ok, das hab ich net bedacht wenn es so ist bzw. auch weiter oben wohl überlesen, sry dafür...
Mir fiel nur das Chaos in dieser Prozedur auf, aber is ja nun auch egal :wink:

DP-Maintenance 3. Apr 2006 21:19

DP-Maintenance
 
Dieses Thema wurde von "MrSpock" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Object-Pascal / Delphi-Language" verschoben.
Ist kein Beitrag zur Codelib.

mkinzler 3. Apr 2006 21:25

Re: Textdatei einlesen u. drucken
 
Auch wenn du vielleicht anderst verstanden hast, bin ich offen für Kritik. ;-) Ich hab mir nur gedacht, daß du nicht den ganzen Thread gelesen hast.

Sturmrider 3. Apr 2006 21:28

Re: Textdatei einlesen u. drucken
 
Ohje...das mit den Units etc. habe ich erlichgesagt nicht im geringsten verstanden uu
Ich bekomme leider immernoch einen Fehler, auch wenn ich Benedikt Version benutze uu

[Fehler] Unit1.pas(157): Undefinierter Bezeichner: 'StringReplace'

was mache ich nur falsch uu?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:41 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz