Fórum Busca em um arquivo de texto. #355670
19/03/2008
0
[color=red:e014f61836][b:e014f61836]Arquivo de texto:[/b:e014f61836][/color:e014f61836]
501# Poção feita de ervas vermelhas. Recupera ^000088cerca de 45 HP^000000, dependendo da sua vitalidade. ^0000FFDê um clique duplo neste item para recuperar alguns HP.^000000 ^ffffff_^000000 Peso : ^7777777^000000 502 Poção feita de ervas vermelhas e amarelas. Recupera ^000088cerca de 105 HP^000000, dependendo da sua vitalidade. ^ffffff_^000000 Peso : ^77777710^000000 503 Poção feita de ervas amarelas. Recupera ^000088cerca de 175 HP^000000, dependendo da sua vitalidade. ^ffffff_^000000 Peso : ^77777713^000000
Ai em cima esta uma parte deli
Eu queria pegar somenete do primeiro ao proximo
Ex:
Poção feita de ervas vermelhas. Recupera ^000088cerca de 45 HP^000000, dependendo da sua vitalidade. ^0000FFDê um clique duplo neste item para recuperar alguns HP.^000000 ^ffffff_^000000 Peso : ^7777777^000000
E exibir em um Memo.
____________________________________________
Ao clicar em um botão
Pegar somente a outra parte entre os #.
E assim por diante.
Isso ia facilitar muito minha vida
Se alguem souber como fazer e poder me ajudar
Eu agradeço ^^
Mortify
Curtir tópico
+ 0Posts
19/03/2008
Marco Salles
var posIni,PosFin:Integer; Texto:String;
//Inicializando Valores
procedure TForm1.FormShow(Sender: TObject); begin texto:=(´501# Poção feita de ervas vermelhas. Recupera ^000088cerca de 45 HP^000000,´+ ´dependendo da sua vitalidade. ^0000FFDê um clique duplo neste item para´+ ´recuperar alguns HP.^000000´+ ´^ffffff_^000000´+ ´Peso : ^7777777^000000´+ ´´+ ´502´+ ´Poção feita de ervas vermelhas e amarelas. Recupera ^000088cerca de 105 HP^000000, dependendo da sua vitalidade.´+ ´^ffffff_^000000´+ ´Peso : ^77777710^000000´+ ´´+ ´503´+ ´Poção feita de ervas amarelas. Recupera ^000088cerca de 175 HP^000000,´+ ´dependendo da sua vitalidade.´+ ´^ffffff_^000000´+ ´Peso : ^77777713^000000´+ ´´); posIni:=0; end;
//Estruturação do Código
procedure TForm1.Button1Click(Sender: TObject); var copyText:String; begin if posIni> 0 Then posFim:=PosEX(´#´,texto,posIni+1) else begin posIni:=pos(´´,Texto); posFim:=PosEX(´´,texto,posIni+1); end; copyText:=copy(texto,PosIni+1,posFim-(posIni+1)); PosIni:=posEx(´´,texto,posFim+1); posFim:=PosEX(´´,texto,PosIni+1); Showmessage(copyText); end;
é so adaptar para a sua necessidades . [b:ee106ed999]O Segredo esta n aFunção PosEx[/b:ee106ed999]
Espero ter sido útil ...
Gostei + 0
21/03/2008
Mortify
Brigadão!!!
Era isso mesmo que eu estava precisando
Desculpa a demora pra responder
É que eu fiquei sem net
Abração ai
>> VALEU NOVAMENTE <<
Te +
Gostei + 0
21/03/2008
Kroki
Poderia corrigir o codigo?
Gostei + 0
21/03/2008
Wanderok
posIni,PosFin:Integer;
Texto:String;
copyText:String;
A qual voce se refere como ´faltando´ ???
Gostei + 0
21/03/2008
Kroki
Eu colei o codigo e achei os erros,se puder me ajudar,mas complementando oque eu precisava era fazer o seguinte;
Pegar uma string de um ListBox,tipo´abcdef/12345/p5p5p5´e separar em tres para obter os resultados,abcdef,12345,p5p5p5 sem o ´/´.
Sabe uma função?
Tipo do ListBox passar para Label1.caption:=´abcdef´,Label2.caption:=´12345´ e Label3>captio:=´p5p5p5´.
Gostei + 0
21/03/2008
Mortify
LINK: [url]http://geocities.yahoo.com.br/mortify.lamim/Delphi/TESTE_BD_ARQUIVO_DE_TEXTO.zip[/url]
Só não repara os nome e talz
Veio eu fiz esse teste com um arquivo de texto
Então você vai ter que colocar o caminho do arquivo de texto que você quer ler
Ele Está lendo de { até } e não de # até como ta ai em cima
É que eu já tinha feito umas alterações. xD
Depois me diz se conseguiu entender o código.
[size=18:0c2d7ec7d2][color=red:0c2d7ec7d2][b:0c2d7ec7d2]AJUDA DENOVUUU[/b:0c2d7ec7d2][/color:0c2d7ec7d2][/size:0c2d7ec7d2]
[i:0c2d7ec7d2]Pensando>>[Eu acho que sou o cara mais chato desse fórum.][/i:0c2d7ec7d2]
[b:0c2d7ec7d2]Será que alguém poderia me ajudar com um Locate (ou qualquer outra coisa) ^^
Eu preciso fazer uma comparação entre tabela e uma linha de um Memo
Tipo é mais ou menos assim
no meu Memo no momento tem os seguintes dados:[/b:0c2d7ec7d2]
502 lalala 01 03
[b:0c2d7ec7d2]Ai eu queria ver se na minha tabela já tem o o item 502
Tem como comparar a linha 0 do Memo com um campo de uma tabela?
Obs.: Campo da tabela é do tipo Autoincremente (+)[/b:0c2d7ec7d2]
Gostei + 0
21/03/2008
Mortify
é Função
Por isso você não achou
Da um ctrl+espaço e arruma ele
Acho que estava escrito errado nem lembro
OBS.: Não consegui editar a mensagem anterior =\
Gostei + 0
21/03/2008
Wanderok
Seria tão bom se a gente pudesse editar os próprios posts... :D:D:D
Gostei + 0
21/03/2008
Wanderok
var Texto,parte1, parte2, parte3:String;
i : integer;
begin
Texto := ´abcdef/12345/p5p5p5´;
parte1 := ´´;´
i:=1;
while (Texto[i] <> ´/´) and (i <= length(Text)) then
begin
parte1:=parte1+texto[i];
inc(i);
end;
parte2 := ´´;´
inc(i);
while (Texto[i] <> ´/´) and (i <= length(Text)) then
begin
parte2:=parte2+texto[i];
inc(i);
end;
parte3 := ´´;´
inc(i);
while (Texto[i] <> ´/´) and (i <= length(Text)) then
begin
parte3:=parte3+texto[i];
inc(i);
edit1.text := parte1;
edit2.text := parte2;
edit3.text := parte3;
end;
Seria tão bom se a gente pudesse editar os póprios posts.... :D:D:D
Gostei + 0
21/03/2008
Wanderok
Seria tão bom se a gente pudesse editar os póprios posts.... :D:D:D
Gostei + 0
21/03/2008
Mortify
E ia reduzir o número de post do forum
Pra mim isso seria ótimo para os 2 lados
Mais fazer o que?! Os cara num que deixar
O que temos a fazer então é aceitar. ^^
[size=18:e5b5eab910][color=red:e5b5eab910][b]ALGUEM ME AJUDA COM O LOCATE POR FAVORRRRRR[/b:e5b5eab910][/color:e5b5eab910][/size:e5b5eab910][/b]
Gostei + 0
21/03/2008
Wanderok
a gente não pode fazer nada..... é maior do que a gente....
mas.....................
nada impede que a gente expressa nossas idéias, certo ????
entao....
Seria tão bom se a gente pudesse editar nosso próprio post.... :D:D:D
Gostei + 0
21/03/2008
Mortify
A única coisa que temos a fazer é expressar nossas idéias
lalala
Aguardando locate =\
Gostei + 0
21/03/2008
Mortify
[b:44247f2011]pelo menos o do Locate né
Pena que não da pra resolver o do edit
xD[/b:44247f2011]
Gostei + 0
21/03/2008
Marco Salles
var Texto:String; posIni,PosFim:integer; begin Texto := ´abcdef/12345/p5p5p5´; PosIni:=Pos(´/´,Texto); Showmessage(copy(texto,1,posIni-1)); PosFim:=PosEx(´/´,texto,PosIni+1); Showmessage(copy(texto,posIni+1,posFim-PosIni-1)); Showmessage(copy(texto,posFim+1,Length(texto)-PosFim)); end;
[b:c7786d818e]p:s[/b:c7786d818e] ..
PosEx -->> Não é variável ...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)