Delphi vyhladavenie v retazci

Programovacie jazyky, rady, poradňa...
jorg22
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1087
Registrovaný: 12 aug 2006, 20:39
Kontaktovať používateľa:

Delphi vyhladavenie v retazci

Príspevok od používateľa jorg22 »

HTML kod stranky sa mi nacita do premennej typu string a chcem tam vyparsovat(oddelit) retazec ktory sa meni medzi presne urcenymi retazcami.

ako na to?
Neviem ani zacat lebo o retazcoch som velmi nevidel pisane, hodili by sa mi linky na nieco o praci s retazcami.
dik
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

Príspevok od používateľa caesar1987 »

tak cyklom chod cez string, najdi prvy retazec, zmen premenu a vsetky dalsie znaky sa budu ukladat az kym nenajdes druhy retazec


urcite by pomohla aj strpoz na urychlenie.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

máš dve funkcie, jednou je copy čo zkopíruje časť reťazca, druhou je pos čo nájde podreťazec v reťazci. Ich deklarácie:

Kód: Vybrať všetko

function Pos(Substr: string; S: string): Integer;
function Copy(S; Index, Count: Integer): string;

Ukážka použitia:

var vysledok,retazec: string;
pozicia: integer;
...
retazec:='automobil';
...
pozicia:=Pos('tom',retazec); //v pozicii bude 3 lebo tom sa nachádza v slove automobil na tretej pozícii (čísluje sa tuším od jedna)
vysledok:=copy(retazec,3,3); //vo výsledku bude tom, lebo kopírujem 3 písmena od tretej pozíciie.

Teraz kombinácia: idem separovať html tag z textu:

Kód: Vybrať všetko

retazec:='toto je nejaky text <body> a tu je znovu text';
vysledok:=copy(retazec,pos('<',retazec),pos('>',retazec)-pos('<',retazec)+1);
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Ako sa to bude správať, keď tam ten hľadaný reťazec nebude? Nevráti to náhodou prvý znak toho reťazca?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

chrono napísal:Ako sa to bude správať, keď tam ten hľadaný reťazec nebude? Nevráti to náhodou prvý znak toho reťazca?
treba dať najprv do podmienky či sa tam nachádza (či je pos(niečo, niekde)>0)
Napísať odpoveď