Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String zurechtschneiden (https://www.delphipraxis.net/89460-string-zurechtschneiden.html)

ferby 31. Mär 2007 13:22


String zurechtschneiden
 
Hallo,

Ich habe mehrere 100 Strings, die alle gleich aufgebaut sind.

Aus diesen String muss ich jetzt zwei Daten filten.

Ich habe jetzt schon eine Zeit lang mit Copy, Delete, etc herumprobiert, allerdings artet das jedesmal in >20 Zeilen Code aus.

Ich denke es müsse mit nur wenigen Zeilen Quellcode reichen.

Hier einmal einige Beispiel Strings:

1) BlockCommon[1] = new Array('ABN AMRO-GL.EM.MK.BD EO A','tts-4297166','347968',1103,99,347968,'Frankfurt',-1,'90,6700','30.03.','19:53:16','-0,1300','-0,1432','90,8000','518','90,6700','91,3500');
2) BlockCommon[1] = new Array('DWS EURO-BONDS (MEDIUM)','tts-4295882','971784',1103,99,971784,'Frankfurt',-1,'1.330,3600','30.03.','18:43:56','-0,3700','-0,0278','1.330,7300','0','1.329,5700','1.339,5500' );
3) BlockCommon[0] = new Array('Oberbank Faktor 7 Bond 05-12','tts-3377671','21401',1118,7,21401,'Wien',0,'90,9500',' 28.03.','13:15:11','0,0000','0,0000','93,5500','10 00','0,0000','0,0000');
4) BlockCommon[0] = new Array('Invesco Euro Rentenfonds T','FU_64234','64234',503,200,64234,'Fonds',-1,'121,9500','30.03.','00:00:00','-0,0400','-0,0328','121,9900','0','0,0000','0,0000');
5) BlockCommon[0] = new Array('Oberbank Winner Bond 05-13','tts-2983031','21399',1118,7,21399,'Wien',0,'92,7000',' 28.03.','13:00:02','0,0000','0,0000','93,9500','10 00','0,0000','0,0000');
6) BlockCommon[2] = new Array('IMMOEAST AG INH.','tts-3813554','64280',1103,1,64280,'Frankfurt',1,'11,05 00','30.03.','16:14:24','0,0100','0,0906','11,0400 ','1131','0,0000','0,0000');


Bei diesen Strings handelt es sich um Datensätze aus einer Aktien Datenbank.
Ich brauche jetzt genau den Kurs und das Datum

Also bei diesen Strings wäre das:

1) Kurs=90,6700 Datum=30.03.
2) Kurs=1.330,3600 Datum=30.03.
.
.
5) Kurs=92,7000 Datum=28.03.
.

Allgemein ist der String so aufgebaut:

BlockCommon[X] = new Array('X','X','X',X,X,'X',X,'KURS','DATUM','X','X' ,'X','X','X','X','X');
Achtung: Nicht überall sind ''

Wobei X immer irgendetwas sein kann.
Den Kurs und das Datum möchte ich auslesen, kann auch immer irgendetwas sein.


Hat jemand eine Idee wie ich diese Daten hinauskopieren Kann?


Also im Prinzip bräuchte ich zwei Funktionen:

function GetKurs(Input: String): String;
function GetDatum(Input: String): String;

Ich nehm mal an das löst man an besten mit dem rauskopieren bzw. rauslöschen der nicht benötigten sachen,
nur leider finde ich keine einfache Möglichkeit.

Wäre super wenn mir jemand Tips geben könnte, wie ich das am einfachsten hinbekomme.

magoo2002de 31. Mär 2007 13:54

Re: String zurechtschneiden
 
Vielleicht hilft dir ja eine Explode-Funktion, z. B.
Strings aufteilen - TDivStrList
Ein dynamisches Array aus einem String erzeugen
[Optimiert] Explode Prozedur - Reloaded (Ersatz für CodeLib)

ferby 31. Mär 2007 15:14

Re: String zurechtschneiden
 
Hallo,

also mit TDivStrList geht es wunderbar, vielen dank


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:13 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