Re: Daten aus INI-Datei lesen und mit Stringlist bearbeiten
Also, wenn ich ne feste Position angebe klappt ja jetzt, aber wenn sie net fest ist das is noch net so ganz richtig!
Delphi-Quellcode:
??? Will, wenn Position nicht feststeht genauso meine Stringliste auf em Memo ausgeben, wie bei fester Position.
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button5: TButton; Button6: TButton; Button7: TButton; procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} var pos : integer; sl: TStringList; s,v1,v2 : string; procedure TForm1.Button6Click(Sender: TObject); begin Close end; procedure TForm1.Button7Click(Sender: TObject); // Stringliste >> Memofeld var zahl: boolean; zahlstart, zahllength,i: integer; zahlstring: string; begin (*with OpenDialog1 do begin Filter := 'Textdateien (*.TXT)|*.TXT'; DefaultExt := 'TXT'; if Execute then sl.LoadFromFile(Filename) end FileName := 'C:\Dokumente und Einstellungen\Tommy\Desktop\Delphi2'; *) s:='0.001 abc 1.45'; //zum Testen zahl:=false; for i:=1 to length(s) do begin if (ord(s[i])>=48) and (ord(s[i])<=57) then begin zahl:=true; zahlstart:=i; end; if zahl then begin if (s[i]<>'.') then begin if (ord(s[i])<48) or (ord(s[i])>57) then begin zahl:=false; zahllength:=i-zahlstart; zahlstring:=copy(s,zahlstart,zahllength); end; end; end; end; pos:=sl.Add(zahlstring); //wenn Position nicht feststeht (* v1:='v1='+copy(s,1,5); //bei fester Position pos:=sl.Add(v1); v2:='v2='+copy(s,15,18); pos:=sl.Add(v2); *) Memo1.Lines.AddStrings(sl) end; procedure TForm1.FormCreate(Sender: TObject); begin sl := TStringList.Create end; end. |
Re: Daten aus INI-Datei lesen und mit Stringlist bearbeiten
Mal ne ganz andere Idee:
Delphi-Quellcode:
Der Quellcode sollte beliebig modifizierbar sein, Du musst Dir nur überlegen, welche Trennstrings oder Trennzeichen Du benutzt.
s:='Variable=Wert';
var p : Integer; Trennstring, Variablenstring, Wertstring : String; begin // Trennstring definieren Trennstring:='='; // seine Position ermitteln p:=Pos(Trennstring,s); // davor steht die Variable Variablenstring:=Copy(s,1,p-1); // die braucht man jetzt nicht mehr, das Trennzeichen auch nicht Delete(s,1,p+Length(Trennstring)-1); // der Rest ist die Zahl (jetzt noch als String) Wertstring:=s; end; |
Re: Daten aus INI-Datei lesen und mit Stringlist bearbeiten
Code:
probiers so mal ... pos:=sl.add(zahlstring); musst du am ende jetzt wegnehmen weils in der schleife steht -
s:='0.001 abc 1.45'; //zum Testen
zahl:=false; for i:=1 to length(s) do begin if (ord(s[i])>=48) and (ord(s[i])<=57) and (not zahl) then begin zahl:=true; zahlstart:=i; end; if zahl then begin if (s[i]<>'.') then begin if (ord(s[i])<48) or (ord(s[i])>57) then begin zahl:=false; zahllength:=i-zahlstart; zahlstring:=copy(s,zahlstart,zahllength); pos:=sl.add(zahlstring); end; end; end; end; ganz wichtig das "and (not zahl)" @ub60 kann es sein das dein ding nicht für mehrere Zahlen in einem String funktioniert? habs mir aber net so genau angeschaut... |
Re: Daten aus INI-Datei lesen und mit Stringlist bearbeiten
[OT]
Zitat:
[/OT] |
Re: Daten aus INI-Datei lesen und mit Stringlist bearbeiten
Recht haddu, aber ich wusste ja was gemeint war...
|
Re: Daten aus INI-Datei lesen und mit Stringlist bearbeiten
Also ich bekomms einfach net auf die Reihe.
Wenn ich
Code:
jetz in die Schleife mit einsetze wie du gesagt, dann gibt der mir immer nur ne 1 auf em Memo aus! komm da net mit :wall:. Eigentlich müßt der mir doch die Zahl in die Stringliste schreiben?! Oder? Sieht so aus als ob ich immer nur die Anfangsposition ausgebe. Was meinst du denn mit "and (not zahl)" ???
pos:=sl.Add(zahlstring);
Glaub ich geh jetz erst mal en Bier trinken :cheers: . |
Re: Daten aus INI-Datei lesen und mit Stringlist bearbeiten
Zitat:
Delphi-Quellcode:
if (ord(s[i])>=48) and (ord(s[i])<=57) and (not zahl) then begin
|
Re: Daten aus INI-Datei lesen und mit Stringlist bearbeiten
:spin2: danke für den Tip Ingo, hat jetz funktioniert.
Vielen Dank auch an Minz, hast mir sehr geholfen!! :coder: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:38 Uhr. |
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