Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   bestimmtes Wort aus einem String auslesen (https://www.delphipraxis.net/207159-bestimmtes-wort-aus-einem-string-auslesen.html)

ashkan19 1. Mär 2021 09:30

bestimmtes Wort aus einem String auslesen
 
hallo allerseits,

Ich hab hier ein kniffliges aber einfaches Problem. Ich habe die folgende Zeile in einem Tstringlist gespeichert:

#EXTINF:-1 tvg-id="" tvg-name="" tvg-language="Hindi" tvg-logo="http://mhdtvworld.com/wp-content/uploads/2018/12/PUNJAB5AAB.jpg" tvg-country="IN" tvg-url="" group-title="",5aab TV


nun möchte ich das Wort nach tvg-language zwischen die zwei "" nämlich "Hindi" ganz einfach auslesen.

gibt es eine bestimmte Vorgehensweise dafür?

Klaus01 1. Mär 2021 09:59

AW: bestimmtes Wort aus einem String auslesen
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  sl: TStringList;
begin
  sl := TStringList.Create;
  try
    sl.DelimitedText := '#EXTINF:-1 tvg-id="" tvg-name="" tvg-language="Hindi" tvg-logo="http://mhdtvworld.com/wp-content/uploads/2018/12/PUNJAB5AAB.jpg" tvg-country="IN" tvg-url="" group-title="",5aab TV';
    sl.Delimiter := ' ';
    edit1.Text := sl.Values['tvg-language'];
  finally
    sl.Free;
  end;
end;
.. dann nur noch die Hochkommatas entfernen.

Grüße
Klaus

ashkan19 1. Mär 2021 10:10

AW: bestimmtes Wort aus einem String auslesen
 
Genial, danke dir Klaus

himitsu 1. Mär 2021 13:35

AW: bestimmtes Wort aus einem String auslesen
 
SL.StrictDelimiter unbedingt auch auf True setzen, sonst wird eventuell nicht so getrennt, wie gedacht.

Der schöne Günther 1. Mär 2021 15:41

AW: bestimmtes Wort aus einem String auslesen
 
Wenn dir allerdings niemand schwört dass diese
Delphi-Quellcode:
name="wert"
-Paare in genau dieser Reihenfolge bei dir eintreffen solltest du besser mit regulären Ausdrücken arbeiten.

himitsu 1. Mär 2021 18:14

AW: bestimmtes Wort aus einem String auslesen
 
Die Reihenfolge ist ja egal, da auf de Namen gegangen wird.

Zitat:

Delphi-Quellcode:
sl.Values['tvg-language']


Mavarik 2. Mär 2021 10:19

AW: bestimmtes Wort aus einem String auslesen
 
Nicht's gegen die Idee von Klaus01 - darauf währe ich jetzt nicht gekommen, sehr schön einfach.

Allerdings würde ich auch nicht einen String in eine Stringliste Umformen um einen Teilstring zu ermitteln.
Das sieht mir nach einem Teil einer Webseite aus. Ich möchte diese Umformung sicherlich nicht für jede Zeile machen oder für die ganze Seite.

Ich suche mit Pos nach dem Token. Mit PosEx nach dem 1. " mit PosEx nach dem 2." und kopiere dann den Text da raus.

Und wenn es richtig schnell gehen soll suche ich mit einem PChar durch den String!

Mavarik

himitsu 2. Mär 2021 10:24

AW: bestimmtes Wort aus einem String auslesen
 
OK, mit Pos suchen und nochmal Delphi-Referenz durchsuchenPoSex für's Ende,
oder eben RegEx.

Aber nein, das mit der StringListe ist nicht wirklich falsch,
denn per se ist das nunmal eine leerzeichen-getrennte Liste, welche von den Anderen bestimmt auch so ähnlich behandelt wird, also in eine Liste der Werte zerlegt.
(sowas machen wir z.B. auch täglich mit den Params zu unseren Programmen, wenn wir sie auslesen)

KodeZwerg 2. Mär 2021 10:50

AW: bestimmtes Wort aus einem String auslesen
 
Zitat:

Zitat von himitsu (Beitrag 1484237)

Du weißt schon was da steht? :stupid:

Man könnte auch bei Pos() per Offset ans Ziel kommen.

himitsu 2. Mär 2021 11:01

AW: bestimmtes Wort aus einem String auslesen
 
Ohhh, seit wann hat denn das normale Pos ein optionales Offset? (klar, das wäre schon immer die schönste/eionfachste Lösung gewesen)

und Ja. ( tse tse tse ... siehst du immer überall nur die perversen Dinge? )


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:28 Uhr.
Seite 1 von 2  1 2   

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