[ M_B @ 22.07.2004. 14:39 ] @
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!!! ;)
[ hwfanatic @ 22.07.2004. 18:07 ] @
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...
[ Kockicica @ 22.07.2004. 21:06 ] @
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 :)
[ M_B @ 23.07.2004. 12:26 ] @
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
[ Kockicica @ 23.07.2004. 13:20 ] @

ExtractStrings funkcija?
[ M_B @ 24.07.2004. 12:24 ] @
Pokusacu, ali bolje bi bilo da postoji nesto namenjeno bas za ovo...
U svakom slucaju hvala.

M_B
[ IgLo @ 29.07.2004. 13:41 ] @
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.
[ Zmaj @ 30.07.2004. 00:36 ] @
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
[ M_B @ 06.08.2004. 10:22 ] @
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. :)