AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Daten aus INI-Datei lesen und mit Stringlist bearbeiten

Daten aus INI-Datei lesen und mit Stringlist bearbeiten

Ein Thema von Tommy111 · begonnen am 11. Nov 2004 · letzter Beitrag vom 15. Nov 2004
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von Tommy111
Tommy111

Registriert seit: 2. Nov 2004
Ort: Kirchberg
35 Beiträge
 
Delphi 6 Professional
 
#11

Re: Daten aus INI-Datei lesen und mit Stringlist bearbeiten

  Alt 14. Nov 2004, 11:36
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:
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.
??? Will, wenn Position nicht feststeht genauso meine Stringliste auf em Memo ausgeben, wie bei fester Position.
Programmieren macht Spaß..., jedoch nur wenn man das Wirrwar an Befehlen und Funktionen verstanden hat...!!
  Mit Zitat antworten Zitat
ub60

Registriert seit: 14. Nov 2004
17 Beiträge
 
#12

Re: Daten aus INI-Datei lesen und mit Stringlist bearbeiten

  Alt 14. Nov 2004, 13:19
Mal ne ganz andere Idee:

Delphi-Quellcode:
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;
Der Quellcode sollte beliebig modifizierbar sein, Du musst Dir nur überlegen, welche Trennstrings oder Trennzeichen Du benutzt.
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#13

Re: Daten aus INI-Datei lesen und mit Stringlist bearbeiten

  Alt 14. Nov 2004, 17:10
Code:
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;
probiers so mal ... pos:=sl.add(zahlstring); musst du am ende jetzt wegnehmen weils in der schleife steht -
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...
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Daten aus INI-Datei lesen und mit Stringlist bearbeiten

  Alt 14. Nov 2004, 18:09
[OT]
Zitat von Tommy111:
Code:
FormatListe.Strings[0] := 'v1=1,5' //d.h. Variable 1 geht von Bit 1 bis 5
FormatListe.Strings[1] := 'v2=15,18' //d.h. Variable 2 geht von Bit 15 bis 18
Es handelt sich hier nicht um Bits sondern um Bytes.
[/OT]
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#15

Re: Daten aus INI-Datei lesen und mit Stringlist bearbeiten

  Alt 14. Nov 2004, 18:10
Recht haddu, aber ich wusste ja was gemeint war...
  Mit Zitat antworten Zitat
Benutzerbild von Tommy111
Tommy111

Registriert seit: 2. Nov 2004
Ort: Kirchberg
35 Beiträge
 
Delphi 6 Professional
 
#16

Re: Daten aus INI-Datei lesen und mit Stringlist bearbeiten

  Alt 15. Nov 2004, 15:49
Also ich bekomms einfach net auf die Reihe.
Wenn ich
Code:
pos:=sl.Add(zahlstring);
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 . 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)" ???
Glaub ich geh jetz erst mal en Bier trinken .
Programmieren macht Spaß..., jedoch nur wenn man das Wirrwar an Befehlen und Funktionen verstanden hat...!!
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Daten aus INI-Datei lesen und mit Stringlist bearbeiten

  Alt 15. Nov 2004, 16:29
Zitat von Tommy111:
Was meinst du denn mit "and (not zahl)" ???
Das in dieser Zeile:
if (ord(s[i])>=48) and (ord(s[i])<=57) and (not zahl) then begin
  Mit Zitat antworten Zitat
Benutzerbild von Tommy111
Tommy111

Registriert seit: 2. Nov 2004
Ort: Kirchberg
35 Beiträge
 
Delphi 6 Professional
 
#18

Re: Daten aus INI-Datei lesen und mit Stringlist bearbeiten

  Alt 15. Nov 2004, 21:30
danke für den Tip Ingo, hat jetz funktioniert.
Vielen Dank auch an Minz, hast mir sehr geholfen!!
Programmieren macht Spaß..., jedoch nur wenn man das Wirrwar an Befehlen und Funktionen verstanden hat...!!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +2. Es ist jetzt 04:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf