Registriert seit: 6. Apr 2005
10.109 Beiträge
|
Re: Text aus Textdatei in TEDIT auslesen und wieder speiche
3. Jun 2006, 23:15
Hallo Mirco,
wenn die Zeilen deutlich länger werden, dann wird es so oder so problematisch eine komfortable Benutzerschnittstelle zu gestalten. Ich würde beim VLE bleiben und nur bei Bedarf ein anderes Control (Memo?) einblenden:
Delphi-Quellcode:
procedure TDemoForm.LoadFile(fn: TFileName);
const
S_DEF = 'define(';
var
i: Integer;
line, sName, sText: String;
pc: PChar;
begin
with TStringList.Create do
begin
LoadFromFile(fn);
VLE.Strings.Clear;
for i := 0 to Pred(Count) do
begin
line := Trim(Strings[i]);
if AnsiStartsText(S_DEF, line) then
begin
pc := PChar(line);
Inc(pc, Length(S_DEF));
sName := AnsiExtractQuotedStr(pc, '''');
Inc(pc, 2);
sText := AnsiExtractQuotedStr(pc, '''');
VLE.Strings.AddObject(sName + '=' + sText, Pointer(i));
end;
end;
Free;
end;
end;
procedure TDemoForm.SaveFile(fn: TFileName);
const
S_FMT = 'define(%s, %s);';
var
i, iLine: Integer;
sName, sText: String;
begin
with TStringList.Create do
begin
LoadFromFile(fn);
for i := 1 to VLE.Strings.Count do
begin
sName := VLE.Keys[i];
sText := VLE.Values[sName];
iLine := Integer(VLE.Strings.Objects[Pred(i)]);
Delete(iLine);
Insert(iLine, Format(S_FMT, [AnsiQuotedStr(sName, ''''), AnsiQuotedStr(sText, '''')]));
end;
SaveToFile(fn);
Free;
end;
end;
Jetzt muss ich aber wirklich ins Bettchen.
marabu
|
|
Zitat
|