Fórum manipulacao de String #206588
14/01/2004
0
Fiz uma aplicacao cliente/servidor, mas o programa cliente fico com 5M, por causa do BDE, ai resolve fazer um banco de dados no cliente, usando um txt. Mas to me batendo pra destribui ele. Assim preciso que cada valor entre <> seja jogado em uma variavel do tipo String. Eis um exemplo:
<Henry><Curitiba><221075981><Programador>
Preciso de uma rotina que fique assim:
Nome: Henry
Cidade: Curitiba
ICQ: 221075981
Profissao: Programador.
Desde ja agradeco, um abraco, Henry.
Henry
Curtir tópico
+ 0Posts
14/01/2004
Beppe
procedure ParseTags(const Data: String; const Fields: array of String; Lines: TStrings); var Stream: TStream; I: Integer; begin Stream := TStringStream.Create(Data); try with TParser.Create(Stream) do try for I := Low(Fields) to High(Fields) do begin if Token = ´<´ then begin if NextToken = toEof then Exit; Lines.Add(Format(´¬s: ¬s´, [Fields[I], TokenString])); if NextToken <> ´>´ then Exit; if NextToken = toEof then Exit; end; end; finally Free; end; finally Stream.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); begin ParseTags(Edit1.Text, [´Nome´, ´Cidade´, ´ICQ´, ´Profissão´], Memo1.Lines); end;
O TParser é meio podrão, mas fez direitinho.
Gostei + 0
14/01/2004
Henry
E me diz uma coisa, ele funciona pra quantos campos eu quise?
Gostei + 0
14/01/2004
Beppe
Ex: Desde que haja um campo idade na string a ser analizada, você pode acrescentar ´Idade´ naquele array.
PS: amanhã posso te explicar melhor, falow. :)
Gostei + 0
14/01/2004
Otto
Gostei + 0
15/01/2004
Beppe
Vai me pagar pelos direitos?
PS: Tô brincando :twisted: , mas vai me pagar? :)
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)