Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Razdvajanje stringova (parsing)

[es] :: Pascal / Delphi / Kylix :: Razdvajanje stringova (parsing)

[ Pregleda: 4030 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

M_B
Beograd

Član broj: 30619
Poruke: 17
*.ptt.yu



Profil

icon Razdvajanje stringova (parsing)22.07.2004. u 14:39 - pre 240 meseci
Kako mogu da rezdvojim tekst kao sto je:

name1=value1 name2=value2 ili name1: value1; name2: value2

na promenljive name i value. U slucaju da nekog zanima o cemu se radi - u pitanju je razdvajanje html, xml i vml atributa na parove ime=vrednost pa na promenljive ime i vrednost, pri cemu ceo kod izgleda kao:

<tagname attribute1=value1 attribute2="value2" attribute3="subatt1: subval1; subatt2: subval2">

Navodnika mogu lako da se resim - funkcijom AnsiDequotedStr, ali ne znam kako da razdvojim ovaj tekst na atribute i vrednosti.

Ljudi pomagajte k'o Boga vas molim!!! ;)
 
Odgovor na temu

hwfanatic
Branko Grbac
Beograd

Član broj: 91
Poruke: 171
194.106.165.*



Profil

icon Re: Razdvajanje stringova (parsing)22.07.2004. u 18:07 - pre 240 meseci
Names i Values su svojstva karakteristična klasi TStrings. Ne znam koliko će ti to pomoći, doduše, ali vredi proučiti - možda ti sine nešto...
Yea, and from this day forth, a surface must be locked before beast or man can draw upon it!
 
Odgovor na temu

Kockicica
Kosta Ćurčić

Član broj: 7982
Poruke: 31
*.dialup.sezampro.yu.

Jabber: kockicica@elitesecurity.org


Profil

icon Re: Razdvajanje stringova (parsing)22.07.2004. u 21:06 - pre 240 meseci
U zavisnosti od toga koju verziju Delphija koristiš, postoji komponenta TXMLDocument koja služi parsiranju xml dokumenata. Ako to ne radi posao, potraži malo po guglu dokumentaciju za nedokumentovanu klasu TParser. Ime bi trebalo da kaže čemu služi :)
 
Odgovor na temu

M_B
Beograd

Član broj: 30619
Poruke: 17
*.ptt.yu



Profil

icon Re: Razdvajanje stringova (parsing)23.07.2004. u 12:26 - pre 240 meseci
Kopao sam po netu vec nedelju dana i nisam nista nasao, i ne - TXMLDocument ne pomaze, a TParser nije bas lak za koriscenje. Ono sto meni treba je metoda kojoj bi se prosledio ceo string i string name a ona bi vracala string value u zavisnosti od name. Ovo se moze postici uz pomoc Pos i Copy, ali ja ne znam kako to da uradim.


M_B
 
Odgovor na temu

Kockicica
Kosta Ćurčić

Član broj: 7982
Poruke: 31
*.dialup.sezampro.yu.

Jabber: kockicica@elitesecurity.org


Profil

icon Re: Razdvajanje stringova (parsing)23.07.2004. u 13:20 - pre 240 meseci

ExtractStrings funkcija?
 
Odgovor na temu

M_B
Beograd

Član broj: 30619
Poruke: 17
*.ptt.yu



Profil

icon Re: Razdvajanje stringova (parsing)24.07.2004. u 12:24 - pre 240 meseci
Pokusacu, ali bolje bi bilo da postoji nesto namenjeno bas za ovo...
U svakom slucaju hvala.

M_B
 
Odgovor na temu

IgLo
Igor Lovric
Sremski Karlovci

Član broj: 19524
Poruke: 129
*.nat-pool.nsad.sbb.co.yu

Sajt: www.unicornsoft.net


Profil

icon Re: Razdvajanje stringova (parsing)29.07.2004. u 13:41 - pre 240 meseci
Od kada je Delphi uveo gomilu "nepotrebnih" funkcija za rad sa stringovima izgleda da su ljudi zaboravili sa rade sa Pos, Copy i Delete funkcijama

Ok, evo ga primer koji radi otprilike ovno sto tebi treba. Radio sam ga u TurboPascal-u posto mi delphi nije bio pri ruci, ali snacices se,... funkcije neces morati da menjas, a glavni kod prepravi kako ti odgovara.

Code:

Program ParseStr;

Function GetStrValue (Name, S : String) : String;

Begin
     If  Pos (Name + '=', S)= 0 Then
        Begin
             Exit;
             GetStrValue := '';
        End;

     Delete (S, 1, Pos (Name + '=', S) + Length (Name));
     If S [1] = '"' Then
        Begin
             Delete (S, 1, 1);
             GetStrValue := Copy (S, 1, Pos ('"', S) - 1);
        End
     Else
        Begin
             While S [1] = #32 Do
                   Delete (S, 1, 1);
             GetStrValue := Copy (S, 1, Pos (' ', S) - 1);
        End;
End { GetStrValue };

Function GetStrSubValue (Name, SubName, S : String) : String;

Begin
     S := GetStrValue (Name, S);
     If (S = '') Or  (Pos (SubName + ':' , S) = 0) Then
        Begin
           GetStrSubValue := '';
           Exit;
        End;
     Delete (S, 1, Pos (SubName + ':', S) + Length (SubName));
     While S [1] = #32 Do
           Delete (S, 1, 1);
     If Pos (';', S) > 0 Then
        GetStrSubValue := Copy (S, 1, Pos (';', S) - 1)
     Else
        GetStrSubValue := S;

End { GetStrSubValue };


Var
   X : String;

Begin
     X := '<tagname attribute1=value1 attribute2="value2" attribute3="subatt1: subval1; subatt2: subval2">';
     WriteLn (GetStrValue ('attribute3', X));
     WriteLn (GetStrSubValue ('attribute3', 'subatt2', X));
End.



Nadam se da sam pomogao.
 
Odgovor na temu

Zmaj
Predrag Krstić
web developer
Zrenjanin

Član broj: 1035
Poruke: 382

Sajt: https://pkrstic.wordpress..


+4 Profil

icon Re: Razdvajanje stringova (parsing)30.07.2004. u 00:36 - pre 240 meseci
Lepo ti je odgovorio hwfanatic, a ti ocigledno nisi pogledao evo ti deo helpa

TStrings introduces many properties and methods to

Add or delete strings at specified positions in the list.
- Rearrange the strings in the list.
- Access the string at a particular location.
- Read the strings from or write the strings to a file or stream.
- Associate an object with each string in the list.
- Store and retrieve strings as name-value pairs.

For an explanation of name-value pairs, refer to the NameValueSeparator property.

A citaju se vrednosti koz property values

property Values[const Name: string]: string;

Uzmi help pa malo citaj to ya TStrings, ako ti ni tada nije jasno javi se pa cemo da razjasnimo
 
Odgovor na temu

M_B
Beograd

Član broj: 30619
Poruke: 17
*.ptt.yu



Profil

icon Re: Razdvajanje stringova (parsing)06.08.2004. u 10:22 - pre 239 meseci
Izvinjavam se, nisam pration forum oko nedelju dana, morao sam da reinstaliram Windows. Hvala na odgovoru, znao sam za ove funkcije, ali ih nisam koristio za ovo jer je u pitanju tekst, a kad je tekst u pitanju sve je moguce. U svakom slucaju hvala. :)
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Razdvajanje stringova (parsing)

[ Pregleda: 4030 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.