Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Variable nach bestimmten Werten durchsuchen


tfo - Mi 10.05.06 16:02
Titel: Variable nach bestimmten Werten durchsuchen
Hallo,

folgendes habe ein Programm geschrieben das eine .pas-datei ausliest und

dann in einer Listbox den Quellcode anzeigt.Funktioniert auch man kann den Text

auch wieder in eine andere speichern! Nun zu meinen Anliegen: Wollte das beim

auslesen der Datei die leeren Reihen nicht in der Listbox mit reingeschrieben werden!

Als Beispiel:
in der Datei steht es nun so drin
_________________________________________________________
Form1: TForm1;

F: TextFile;
_________________________________________________________

so wird es dann auch in der Listbox angezeigt!
Wollte es nun aber so haben

Form1: TForm1;
F: TextFile;


Hatte mir überlegt das man halt die Variable nach leeren Zeilen durchsuchen
muss und dann diese durch "nichts" ersetzen. Naja oder so ähnlich!
Hat jemand eine Idee wie ich das umsetzen kann?

Danke schon mal für eure Hilfe!


MFG TFO



Hier mein Quellcode!

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:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Edit1: TEdit;
    Label1: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    ListBox1: TListBox;
    Button1: TButton;
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

  F: TextFile;
  zaehle:integer;
  S: string;

implementation

{$R *.DFM}

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin
  AssignFile(F, 'unit1.pas');
    Reset(F);
    zaehle:= 0;
    while not EOF(F) do
    begin
    zaehle:= zaehle + 1;
    Readln(F, S);

    Listbox1.items.add(S);
    end;
    edit1.Text:= inttostr(zaehle);
  CloseFile(F);
end;


procedure TForm1.Button1Click(Sender: TObject);

begin
  Listbox1.items.SaveToFile('unit1.bak');  
end;                  


end.


Born-to-Frag - Mi 10.05.06 16:06

versuchs mal sowas:


Delphi-Quelltext
1:
2:
  while Pos(#13#10#13#10, DeinString) > 0 do
    StringReplace(DeinString, #13#10#13#10#13#10, [rfReplaceAll]);



greetz


tfo - Mi 10.05.06 16:09

Danke für die schnelle Antwort!!!

Könntest du mir kürz erklären was es mit den

#13#10#13#10

auf sich hat!

Kann gerade nichts damit anfangen!


Born-to-Frag - Mi 10.05.06 16:11

also #13#10 ist immer ein Zeilenumbruch. Und du tauscht so lange Doppelte zeilenumbrüche aus (#13#10#13#10) bis es keine mehr gibt ;)

greetz


tfo - Mi 10.05.06 16:16

AH langsam geht mir wieder ein Licht auf!

Hatte mal vor langer zeit damit gearbeitet.....

damals hatte ich es für die MessageBox benutzt usw. damit ich mehr Text

reinschreiben konnte natürlich untereinander!Da hatte ich das auch

mit #13#10 gemacht!!!

Danke wäre so nicht drauf gekommen!

Schönen Tag noch