Registriert seit: 15. Mär 2012
35 Beiträge
|
Datei öffnen und Werte ausgeben funktioniert nicht
24. Aug 2012, 15:29
Hi,
ich öffne eine Datei und will nur bestimmte Werte zur weiteren Verwendung nutzen.
Die Datei öffne ich in ein Memofeld, was auch funktioniert. Wenn ich jetzt Werte verwenden möchte, werden diese nicht angezeigt in Editfeldern.
Was mache ich verkehrt?
Vielen Dank für eure Hilfe.
Gruss
Matthias
Delphi-Quellcode:
unit BarBow;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, ExtCtrls, Grids;
type
TForm9 = class(TForm)
Memo1: TMemo;
Image2: TImage;
StaticText1: TStaticText;
MainMenu1: TMainMenu;
MainMenu2: TMenuItem;
OPen1: TMenuItem;
Exit1: TMenuItem;
Help1: TMenuItem;
OpenDialog1: TOpenDialog;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button2: TButton;
Edit4: TEdit;
procedure Exit1Click(Sender: TObject);
procedure OPen1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form9: TForm9;
filename : string;
implementation
{$R *.dfm}
procedure TForm9.Exit1Click(Sender: TObject);
begin
close();
end;
procedure TForm9.FormCreate(Sender: TObject);
begin
// Memo1.WordWrap := False;
// Memo1.Lines.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Kurve.txt');
end;
procedure TForm9.OPen1Click(Sender: TObject); // liest Datei in Memofeld ein
var St,helpstring : string;
F : TextFile;
begin
if OpenDialog1.Execute then
begin
filename:= OpenDialog1.FileName;
AssignFile(F, OpenDialog1.FileName); // Datei auswählen
Reset(F);
while not eof (F) do
begin
Readln(F, helpstring); //Erste Zeile der Datei lesen
St:=St + helpstring;
Memo1.Text := St; //String in ein Memo schreiben
end;
CloseFile(F);
end;
end;
procedure TForm9.Button1Click(Sender: TObject);
begin
close();
end;
procedure TForm9.Button2Click(Sender: TObject);
var s,s1,s2 : string;
erstezeile,i,SuchZeile,p : integer;
begin
ErsteZeile := Memo1.Lines.Count;
for i:=0 to Memo1.Lines.Count -1 do
if SameText(Memo1.Lines[i],' data1:') then
begin
ErsteZeile:=i+1;
Edit4.Text:=IntToStr(ErsteZeile);
Break;
end;
SuchZeile:=StrToIntDef(Edit1.Text,1);
Edit1.Text:=IntToStr(SuchZeile); //Korrigieren wenn Fehler
SuchZeile:=ErsteZeile+SuchZeile;
s:=Memo1.Lines[SuchZeile];
p:=Pos(#9,s); // #9 = Tab
Delete(s,1,p); //löscht erstes Tab, d.h. bis vor erste Spalte
p:=Pos(#9,s); // #9 = Tab
Delete(s,1,p); //löscht bis ersten Tab, d.h. bis vor zweite Spalte
p:=Pos(#9,s); // #9 = Tab
Delete(s,1,p); //löscht bis zweiten Tab, d.h. bis vor dritte Spalte
p:=Pos(#9,s); // #9 = Tab
Delete(s,1,p); //löscht bis dritten Tab, d.h. bis vor dritte Spalte
p:=Pos(#9,s); // #9 = Tab
Delete(s,1,p); //löscht bis vierten Tab, d.h. bis vor dritte Spalte
p:=Pos(#9,s); // #9 = Tab
Delete(s,1,p); //löscht bis fuenften Tab, d.h. bis vor zweite Spalte
p:=Pos(#9,s); // #9 = Tab
Delete(s,1,p); //löscht bis sechsten Tab, d.h. bis vor dritte Spalte
p:=Pos(#9,s); // #9 = Tab
Delete(s,1,p); //löscht bis siebten Tab, d.h. bis vor dritte Spalte
p:=Pos(#9,s); // #9 = Tab
s1:=Copy(s,1,p); //kopiert bis achten Tab, d. h. zweite Spalte
Delete(s,1,p); //löscht bis achten Tab, d.h. bis vor dritte Spalte
p:=Pos(#9,s); // #9 = Tab
s2:=Copy(s,1,p); //kopiert bis neunten Tab, d. h. zweite Spalte
Delete(s,1,p); //löscht bis neunten Tab, d.h. bis vor dritte Spalte
Edit2.Text:=Trim(s1);
Edit3.Text:=Trim(s2);
end;
end.
|