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
Thema durchsuchen
Ansicht
Themen-Optionen

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 1 von 2  1 2      
Benutzerbild von Tommy111
Tommy111

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

Daten aus INI-Datei lesen und mit Stringlist bearbeiten

  Alt 11. Nov 2004, 13:28
Moin,
hab folgendes Problem:
ich möchte aus einem String mit Leerzeichen(Zahlenwerte u. Zeichen) nur Zahlenwerte auslesen und diese dann einer Variablen zuweisen. Is net leicht zu erklären, hab mir folgendes gedacht:

Zuerst lese ich einen String, z.B. s:='0.001 ABC 1.45' aus einer INI_datei.
Nun will ich diesen String in einer Function, von mir aus "Function Format(s:string ; FormatListe:Stringlist ; out Variablenliste)" bearbeiten.
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
Hatte mir das so gedacht, ob es Sinn macht weiß ich net, find irgendwie net so richtig den Anfang bei der Sache.

Bin für jede Anregung dankbar!
Programmieren macht Spaß..., jedoch nur wenn man das Wirrwar an Befehlen und Funktionen verstanden hat...!!
  Mit Zitat antworten Zitat
Minz

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

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

  Alt 11. Nov 2004, 13:54
verstehe ehrlich gesagt noch nicht so ganz wo genau dein Problem liegt

Weißt du nicht, wie du die Zahlen aus dem String holst?

Hast du Probleme die StringList zu verwenden?

etc.
  Mit Zitat antworten Zitat
Benutzerbild von Tommy111
Tommy111

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

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

  Alt 11. Nov 2004, 14:08
Genau das ist mein Problem, die Zahlen aus dem String rausholen, aber nicht die Zeichen. Und die Stellen an der die Zahlen stehen bzw. die Zahlen selbst in einer Laufvariablen speichern.
Programmieren macht Spaß..., jedoch nur wenn man das Wirrwar an Befehlen und Funktionen verstanden hat...!!
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#4

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

  Alt 11. Nov 2004, 14:11
So "0.001 ABC 1.45" sieht die Quelle aus? Und wie soll das Ergebnis aussehen?
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Minz

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

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

  Alt 11. Nov 2004, 14:21
Code:
s:='0.001ABC';

for i:=1 to length(s) do
    if (ord(s[i])>=48) and (ord(s[i])<=57) then ergebnis:=ergebnis+s[i]; // 48 bis 57 sind die ASCII-Codes für 0 bis 9
evtl. ist der 1. Index von s gleich 0 und nicht 1. Dann musst du for-next Schleife von 0 bis length(s)-1 machen.
  Mit Zitat antworten Zitat
Benutzerbild von Tommy111
Tommy111

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

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

  Alt 12. Nov 2004, 16:14
OK,
so weit so gut, der Punkt sollte jedoch auch noch zur Zahl gehören.
Dann wollte ich auch noch bei mehreren Zahlen(z.B. '0.001_abc_1.45 ....') die Zahlen und deren Position(z.B. Zahl 0.001 geht von Bit 1-5 im String und Zahl 1.45 geht von Bit 11-14 usw.) jeweils einer Variablen(z.B. v1:=0.001 und steht an der Stelle 1-5 im String) zuweisen. Ich glaub dad wird ziehmlich kompliziert?!
Programmieren macht Spaß..., jedoch nur wenn man das Wirrwar an Befehlen und Funktionen verstanden hat...!!
  Mit Zitat antworten Zitat
Minz

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

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

  Alt 13. Nov 2004, 00:05
Wenn die Zahlen an einer festen Position im String stehen,
wie du sagt Bit 1-5 und 11-14 etc. dann ist das nicht so schwer.

Code:
v1:=strtofloat(copy(s,1,5));
v2:=strtofloat(copy(s,11,4));
ahso glaube du musst den Punkt vorher in ein Komma umwandeln damit strtofloat funktioniert...
  Mit Zitat antworten Zitat
Benutzerbild von Tommy111
Tommy111

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

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

  Alt 13. Nov 2004, 12:22
Danke, das hat geklappt!
Was aber, wenn die Zahlen keine feste Position im String haben?
Um nochmal auf meine Anfangsidee zu kommen, ich hab da mal en bißchen in der Hilfe rumgeschaut. Kann man das ganze auch mit
Code:
StringList.Strings[0] := 'v1=1,5';
StringList.Strings[1] := 'v2=11,14';
machen?? Muß man dann vorher eine neue Stringliste erstellen? Hab noch nie mit StringList gearbeitet! Kennst du vielleicht en guten Link oder ne Lektüre (Buch) wo das arbeiten mit Strings,Stringlisten oder generell mit Datenerfassung und Bearbeitung beschrieben wird??
Programmieren macht Spaß..., jedoch nur wenn man das Wirrwar an Befehlen und Funktionen verstanden hat...!!
  Mit Zitat antworten Zitat
Minz

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

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

  Alt 13. Nov 2004, 13:10
TStringList ist ein Objekt. Wenn du es benutzen willst, musst du eine erstellen.

Wenn du die Zahlen nicht als Zahlen brauchst sondern erstmal als strings dann:

Code:
v1, v2: string;
sl: TStringlist;
pos: integer;

sl:=TStringList.create;
v1:='v1='+copy(s,1,4);
pos:=sl.add(v1);
so ungefähr müsste das gehen

Ein gutes Buch kenne ich leider nicht. Ich arbeite hauptsächlich mit der Delphi-Hilfe und Internet.
  Mit Zitat antworten Zitat
Minz

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

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

  Alt 13. Nov 2004, 13:24
achso keine feste Position:

Dann durchläufst du solange den String:

- bis du eine Zahl findest
- bis die Zahl von einem anderen Zeichen abgebrochen wird
- bis der String zuende ist

Code:
zahl: boolean;
zahlstart, zahllength: integer;
zahlstring: string;

zahl:=false;
for i:=low(s) to high(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;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 +1. Es ist jetzt 08:28 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