Busca em um arquivo de texto.
Bem pessoal não estou conseguindo separar uma parte de um arquivo de texto
[color=red:e014f61836][b:e014f61836]Arquivo de texto:[/b:e014f61836][/color:e014f61836]
Ai em cima esta uma parte deli
Eu queria pegar somenete do primeiro ao proximo
Ex:
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 ^^
[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
Curtidas 0
Respostas
Marco Salles
19/03/2008
//Definindo Variáveis
//Inicializando Valores
//Estruturação do Código
é so adaptar para a sua necessidades . [b:ee106ed999]O Segredo esta n aFunção PosEx[/b:ee106ed999]
Espero ter sido útil ...
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
Mortify
19/03/2008
Valeu ai cara
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 +
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
Kroki
19/03/2008
Ola gostaria de testar esses codigos mas esta faltando variaveis.
Poderia corrigir o codigo?
Poderia corrigir o codigo?
GOSTEI 0
Wanderok
19/03/2008
As variáveis usadas sao as seguintes e estao TODAS declaradas...
posIni,PosFin:Integer;
Texto:String;
copyText:String;
A qual voce se refere como ´faltando´ ???
posIni,PosFin:Integer;
Texto:String;
copyText:String;
A qual voce se refere como ´faltando´ ???
GOSTEI 0
Kroki
19/03/2008
PosiFin na verdade é posifiM com m mas isso não é nada,eu não entendí e não achei foi ´PosEX´.
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´.
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
Mortify
19/03/2008
Ae cara pode testar a vontade ^^
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]
[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]
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
Mortify
19/03/2008
Veio PosEx não é variavel
é 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 =\
é 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
Wanderok
19/03/2008
Não consegui editar a mensagem anterior =\
Seria tão bom se a gente pudesse editar os próprios posts... :D:D:D
GOSTEI 0
Wanderok
19/03/2008
procedure form1.desmembra;
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
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
Wanderok
19/03/2008
Por favor, onde está LENGTH(TEXT) substituir por LENGTH(TEXTO)...
Seria tão bom se a gente pudesse editar os póprios posts.... :D:D:D
Seria tão bom se a gente pudesse editar os póprios posts.... :D:D:D
GOSTEI 0
Mortify
19/03/2008
[b:e5b5eab910]Isso ia ajudar bastante
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]
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
Wanderok
19/03/2008
Bem......
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
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
Mortify
19/03/2008
é verdade ^^
A única coisa que temos a fazer é expressar nossas idéias
lalala
Aguardando locate =\
A única coisa que temos a fazer é expressar nossas idéias
lalala
Aguardando locate =\
GOSTEI 0
Mortify
19/03/2008
[color=red:44247f2011][size=18:44247f2011][b:44247f2011]PROBLEMA RESOLVIDO ^^[/b:44247f2011][/size:44247f2011][/color:44247f2011]
[b:44247f2011]pelo menos o do Locate né
Pena que não da pra resolver o do edit
xD[/b:44247f2011]
[b:44247f2011]pelo menos o do Locate né
Pena que não da pra resolver o do edit
xD[/b:44247f2011]
GOSTEI 0
Marco Salles
19/03/2008
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´.
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] ..
Aonde tiver showmessage(.......) substitua por :
Label1.Caption:=copy(texto,1,posIni-1);
idem para os demais labels...
PosEx -->> Não é variável ...
GOSTEI 0
Kroki
19/03/2008
Ae pessoal a função PosEx não existe aqui e gera erro,uso Delphi 7,oque deve fazer?
GOSTEI 0
Kroki
19/03/2008
Como não da para editar...resolví incluindo ´StrUtils´no uses...isso ninguem mencionou...
GOSTEI 0
Marco Salles
19/03/2008
[b:44467262a3]citação [u:44467262a3]brava[/u:44467262a3] de kroki[/b:44467262a3]
:arrow: Foi mencionado Sim ...
[b:44467262a3]citação antiga de Mortify[/b:44467262a3]
escreva Pos na Unit.pas dê um [b:44467262a3]ctrl+espaço [/b:44467262a3], selecione o PosEx , dando um Enter ... O Delphi inclue automaticamente a Unit StrUtils na Secção Uses
Como não da para editar...resolví incluindo ´StrUtils´no uses...isso ninguem mencionou...
:arrow: Foi mencionado Sim ...
[b:44467262a3]citação antiga de Mortify[/b:44467262a3]
Da um ctrl+espaço e arruma ele
escreva Pos na Unit.pas dê um [b:44467262a3]ctrl+espaço [/b:44467262a3], selecione o PosEx , dando um Enter ... O Delphi inclue automaticamente a Unit StrUtils na Secção Uses
GOSTEI 0