![]() |
zahlen aus unterschiedlichen memos auslesen
ich möchte aus einem Memo das diesen inhalt hat:
Code:
Erz (360): 4.579 Kristalle (150): 2.397
Aluminium (200): 3.139 Energie (65): 111.267 Legierungen (110): 1.639 Credits insgesamt: 340.943,65 dort will ich von erz, alu, leg, kris und enrg jeweils die zahl hinter den doppelpunkten auslesen und sie einer variablen zu weisen so dass ich nacher variablen in integer habe die wie folgt aussehen: erz=4579; alu=3139; leg=1639; kris=2397; enrg=111267; die zahlen in den klammern sowie die späteren variablen (zahlen hinter dem doppelpunkt) sind bei jeder neuberechnung anderst (komplettes memo wird aus externem prog eingefügt). Die Zahlen bewegen sich wahrscheinlic bis in einen bereich von 12 stellen, koennten aber auch mehr sein. aber nicht unendlich. Jetzt hab ich das problem wie krieg ich des hin? hat vielleicht jemand eine idee oder schon ein fertigen code den man anpassen könnte? würd mich freuen wenn mir jemand helfen könnte... greetz centauri |
Re: zahlen aus unterschiedlichen memos auslesen
Hai centauri,
herzlich Willkommen in der Delphi-PRAXIS. Wenn ich das richtig sehe ist allen Zahlen gemeinsam das davor ein ": " steht und an danach ein " " oder ein CR/LF Mit den Funktionen Pos und Copy solltest Du das eigentlich recht leicht lösen können. |
Re: zahlen aus unterschiedlichen memos auslesen
ich werds mal ausprobieren und mich dann wieder melden... thx
|
Re: zahlen aus unterschiedlichen memos auslesen
Hallo!
Am einfachsten ist das wenn die einzelnen Daten untereinander in der Memo stehen. (In deinem Source stehen sie nebeneinander!). Du bekommst den Inhalt einer bestimmten Zeile des Memos durch
Delphi-Quellcode:
Jetzt kannst du mit Pos und Copy den Inhalt auslesen
memo1.lines[zeile]
|
Re: zahlen aus unterschiedlichen memos auslesen
die kommen aus der quelle aber leider so wie oben angegeben...
|
Re: zahlen aus unterschiedlichen memos auslesen
so ich habs jetzt mal mit pos und copy versucht...
jetzt hab ich allerdings das problem, dass ich nur die erste der beiden zahlen in jeder zeile auslesen kann... wie könnte ich an die zweite kommen? |
Re: zahlen aus unterschiedlichen memos auslesen
Angenommen du hast diese Zeile ausgelesen:
Erz (360): 4.579 Kristalle (150): 2.397 und ermittelst nun den ersten Wert, mit Pos und Copy, dann kannst du diesen Teil per Delete auch aus dem String entfernen, und hast dann nur noch Kristalle (150): 2.397 übrig. Dies kannst du genauso verarbeiten wie das erste Stück usw. |
Re: zahlen aus unterschiedlichen memos auslesen
Zitat:
ohne deinen Quellcode für das "suchen" der Zahlen zu sehen kann man da nicht viel sagen. Zeige doch mal den Bereich in dem Du mit Copy und Pos versuchst die Zahlen im Text zu finden. |
Re: zahlen aus unterschiedlichen memos auslesen
so, mit der funkction kann ich die erste zahl auslesen... vielleicht kann mir den ja jemand umschreiben, dass sie die zweite zahl packt...
Delphi-Quellcode:
{© by Himitsu @ Delphi-PRAXiS }
{Org by "Jens Schumann" @ Delphi-PRAXiS} Function TForm3.GetNumbers(L: TStrings; aStart, aEnd: String; aPos: Integer): String; Function DeleteNonNumbers(Const Value: String): String; Var I: Integer; Begin Result := ''; For I := 1 to Length(Value) do Begin If Value[I] in ['0'..'9', ',', '-'] Then Result := Result + Value[I]; If Value[I] = '.' Then Result := Result + ''; End; {eventuelle Tausendertrennzeichen entfernen} End; Var H: String; iCnt: Integer; aCount: Integer; Begin Result := '0'; aStart := AnsiUpperCase(aStart); aEnd := AnsiUpperCase(aEnd); aCount := 0; For iCnt := 0 to L.Count - 1 do Begin H := AnsiUpperCase(L[iCnt]); If (Pos(aStart, H) > 0) and (Pos(aEnd, H) > 0) Then Begin Inc(aCount); If aCount = aPos Then Begin H := Copy(L[iCnt], Pos(aStart, H) + Length(aStart), Pos(aEnd, H) - Pos(aStart, H) - Length(aStart)); H := DeleteNonNumbers(H); If H > '' Then Result := H Else Result := '0'; break; End; End; End; End; thx centauri |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz