Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wo beim einlesen ist hier mein Fehler?? (https://www.delphipraxis.net/61226-wo-beim-einlesen-ist-hier-mein-fehler.html)

waschlap 18. Jan 2006 14:55


Wo beim einlesen ist hier mein Fehler??
 
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var rliste :TStringList;
    i,i_rec: integer;

begin
  rliste := TStringList.Create;
  rliste.LoadFromFile('c:\test.txt');
  i_arr:= -1;
  i_rec:= -1;

  for i:= 0 to rliste.Count -1 do
  begin
    If not (i_rec+2 > rliste.Count) then
    begin
      i_rec := i_rec + 1;
      if (rliste.Strings[i_rec]= 'stelle') then
      begin
        i_rec := i_rec + 1;
        i_arr := i_arr +1;

        setlength(absatz_edit,length(absatz_edit)+1);
        absatz_edit[i_arr].zeile := TStringList.Create;
        absatz_edit[i_arr].zeile.Add(rliste.Strings[i_rec]);

        i_rec := i_rec + 1;
        setlength(absatz_mem,length(absatz_mem)+1);
        absatz_mem[i_arr].zeile := TStringList.Create;
        absatz_mem[i_arr].zeile.Add(rliste.strings[i_rec]);
      end else begin
        absatz_mem[i_arr].zeile.Append(rliste.Strings[i_rec]);
      end;
    end;
  end;

  memo1.text:= absatz_mem[0].zeile.Text;
  edit1.Text := absatz_edit[0].zeile.Text;

   showmessage(absatz_edit[0].zeile.Text+'1');
 // rliste.Free;
end;
Hallo durch eure Hilfe bin ich ein gutes Stück wieter gekommen nur hier ist was was ich nicht verstehe. Wenn ich dies hier ausführe liest er alles korrekt ein aber in meinem edit feld steht das ausgelesene zb.: EDVII mit zwei Betrag strichen wieso?

Um Hilfe wird dringends gebeten - Danke Manu :dancer: :dancer:

Angel4585 18. Jan 2006 14:59

Re: Wo beim einlesen ist hier mein Fehler??
 
Was für ne Struktur hat absatz_Edit? Kannst du das auch dazuposten?

waschlap 18. Jan 2006 15:01

Re: Wo beim einlesen ist hier mein Fehler??
 
Delphi-Quellcode:
type
  listenarray = record
        zeile:TStringlist;
  end;
  TForm1 = class(TForm)
    Button3: TButton;
    Button2: TButton;
    Button1: TButton;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn4: TBitBtn;
    Edit1: TEdit;
    BitBtn3: TBitBtn;
    memo1: TMemo;
    ListBox1: TListBox;
    BitBtn5: TBitBtn;
    procedure Button3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public

    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  absatz_mem: array of listenarray;
  absatz_edit: array of listenarray;
  i_mem: integer;
  i_arr: integer;
und meine externes file schaut folgt aus:

stelle
EDV
verschiedene Tätigkeiten im EDV - Bereich
Reparatur von Hardware
User Helpline
stelle
idistelle
verschiedene Tätigkeiten im EDV - Bereich
Reparatur von Hardware
User Helpline
rt
re
er
er
er
werrtwe
r
ds
dsf
sdfa
d
asdf
sdfs
stelle
praktikant
verschiedene Tätigkeiten im EDV - Bereich
Reparatur von Hardware
User Helplinegfgf

reicht das??

Mfg
Manu

Ferber 18. Jan 2006 16:26

Re: Wo beim einlesen ist hier mein Fehler??
 
Offensichtlich hast Du deinen Code in die Ereignisbehandlung OnShowForm geschrieben. :pale:
Zitat:

Zitat von waschlap
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var rliste :TStringList;
    i,i_rec: integer;

begin
  rliste := TStringList.Create;
  rliste.LoadFromFile('c:\test.txt');
  ....
end;

Das gehört IMHO nicht hierher.

Hab mal gebastelt.
Delphi-Quellcode:
unit UMain;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    JobList: TListBox;
    JobMemo: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure JobListClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
  public
    procedure LoadJobList(aFileName:String; aLB:TListBox);
    procedure JobListChanged(idx:Integer);
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  LoadJobList('C:\Test.txt', JobList);
end;

procedure TForm1.LoadJobList(aFileName:String; aLB:TListBox);
var sl:TStringlist; si:Integer;
    NewJob:Boolean;
begin
  JobList.Clear;
  sl:=TStringlist.Create;
  sl.LoadFromFile('C:\Test.txt');
  NewJob:=False;
  for si:=0 to sl.Count-1 do
    if AnsiUppercase(Trim(sl.Strings[si]))='STELLE'
       then NewJob:=True
       else begin
              if NewJob then
                 begin
                   JobList.Items.AddObject(sl.Strings[si], TStringList.Create);
                   NewJob:=False;
                 end;
              TStringList(JobList.Items.Objects[JobList.Items.Count-1]).Add(sl.Strings[si])
              end;
  sl.Free;
end;

procedure TForm1.JobListClick(Sender: TObject);
begin
  JobListChanged(JobList.ItemIndex);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  LoadJobList('C:\Test.txt', JobList);
  JobList.ItemIndex:=0;
  JobListChanged(JobList.ItemIndex);
end;

procedure TForm1.JobListChanged(idx: Integer);
begin
  JobMemo.Lines.Assign(TStringList(JobList.Items.Objects[idx]));
end;

end.
:)


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr.

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