GARANTIR DESCONTO

Fórum manipulacao de String #206588

14/01/2004

0

Gente, to precisando de um help urgente mesmo.

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

Henry

Responder

Posts

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.


Responder

Gostei + 0

14/01/2004

Henry

Miguinho Bipi, pode explica o codigo pra mim???
E me diz uma coisa, ele funciona pra quantos campos eu quise?


Responder

Gostei + 0

14/01/2004

Beppe

Pode ter quantos campos quiser, que são passados como argumento no open array Fields.

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. :)


Responder

Gostei + 0

14/01/2004

Otto

Aqui em casa funcionou blz.... gostei do exemplo e ja guardei aqui em casa. :wink:


Responder

Gostei + 0

15/01/2004

Beppe

Aqui em casa funcionou blz.... gostei do exemplo e ja guardei aqui em casa. :wink:


Vai me pagar pelos direitos?

PS: Tô brincando :twisted: , mas vai me pagar? :)


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar