Ir para conteúdo
Fórum Script Brasil

giorot

Membros
  • Total de itens

    9
  • Registro em

  • Última visita

Sobre giorot

giorot's Achievements

0

Reputação

  1. Jhonas, como faço sem embaixo da linha descriçãovalor tiver menos que 5 linhas, ou seja, pode váriar de 1 a 5 de acordo com o cliente. Pelo fato de no code estar escrito if x >= 5 then o codigo só funciona com os 5 valores, tentei retirar aquilo e fazer de tudo mas só funciona corretamente se tiver 5 campos, tem como caso tenha menos de 5 adicionar um espaço em branco para fazer rodar ou teria alguma solução mais fácil para isto ocorrer? desculpe pela insistencia abraço
  2. não consegui.. o seu código funciona direitinho, mas quando vou alterar alguma coisa já complica, os edits se misturam todos que aperto o botão e algumas palavras saem cortadas.. tudo acontece quando mexo no ultimo inc (k); Tirei o valor1valor2valor3 dos valores de 'd' pois não quero que apareça em 1 edit. Fui colocar o ultimo comando de captura: IF Pos('valor1valor2valor3', S) > 0 THEN BEGIN x := x + 1; valor[x] := copy(Memo1.Lines.Strings[k+1],1,Pos(',', S)+2); // SEPARAR OS VALORES S[Pos(',', S)] := '#'; delete(S,1,Pos('#', S)+2); end; case x of 1 : begin edit13.text := valor[x]; end; 2 : begin edit14.text := valor[x]; end; 3 : begin edit15.text := valor[x]; end; mas não sei se é para colocar antes ou depois daquele ultimo inc (k), tentei dos 2 modos mas ambos confundiram o programa não sei porque, não entendo como aquele ultimo inc influencia tanto. Se me explicasse o porque do ultimo inc(k) ficaria grato e também como faço para adicionar mais funções dentro deste procedure.. ta difícil.... :unsure:
  3. beleza :o ! assim eu também aprendo mais. vlw edit: Ahh, não sabia que tinha que fazer isto for j := 0 to 5 do // valores de d begin IF Pos(d[j], S) > 0 THEN Já este incremento inc(k) eu nunca tinha visto, mas dei uma lida rapida. Amanha eu tento adptar, muito obrigado.
  4. bom, tentei adicionar mas não foi, o problema insiste talvez eu esteja fazendo alguma coisa impossivel Meu Memo: BancoCódigo do Banco REAL 123456 descriçãoValor descriçãoaqui2.000,00 outrainformação2.200,00 qualquercoisa2.000,00 maisuma345,00 . //dependendo do cliente pode ter mais ou menos linhas aqui com descrição diferente mas dentro de uma lista, no max 6. . . valor1valor2valor3 2.000,00242,622.581,48 vou postar meu code: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Button1: TButton; Edit7: TEdit; Edit8: TEdit; Edit9: TEdit; Edit10: TEdit; Edit11: TEdit; Edit12: TEdit; Edit13: TEdit; Edit14: TEdit; Edit15: TEdit; Edit16: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; valores : array[1..10] of string; palavras : array[1..10] of string; banco : string; s : string; t : string; const d : array[1..17] of string = ('qualquercoisa', 'descriçãoaqui', 'outrainformação', 'maisuma', 'todasdiferente'); // aqui tentei listar as possiveis descrições de crédito implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i, j, X , n : integer; begin x := 0; for i := 0 to Memo1.Lines.Count-1 do for j := 0 to Memo1.Lines.Count+1 do //aqui tentei fazer de 1 jeito para pegar a linha seguinta da posição encontrada begin t := Memo1.Lines.Strings[j]; s := Memo1.Lines.Strings[i]; x := 0; IF Pos('Bancocodigo', S) > 0 THEN begin banco := copy(Memo1.Lines.Strings[2],1,0); // Pegar o Banco já que ele esta em uma mesma linha sempre. edit1.text := banco; IF Pos('valor1valor2valor3', S) > 0 THEN // aqui é o seu código de pegar valores após a virgula com a diferença de pegar 1 linha depois da posição. begin x := x + 1; valores[x] := copy(t,1,Pos(',', S)+2); // pegar valor bruto S[Pos(',', S)] := '#'; delete(S,1,Pos('#', S)+2); case x of 1 : begin edit2.text := valores[x]; end; 2 : begin edit3.text := valores[x]; end; 3 : begin edit4.text := valores[x] end; IF Pos('d', S) > 0 THEN //aqui ele procura um dos valores listados la em cima. begin x := x + 1; palavras[x] := copy(s,1,Pos('d', S)+3); // pega a palavra encontrada delete(S,1,Pos('d', S)+3); valores[x] := copy(s,1,Pos(',', S)+2); // pegar valor do lado da palavra case x of 1 : begin edit5.text := palavras[x]; edit6.text := valores[x] end; 2 : begin edit7.text := palavras[x]; edit8.text := valores[x] end; 3 : begin edit9.text := palavras[x]; edit10.text := valores[x] end; 4 : begin edit11.text := palavras[x]; edit12.text := valores[x] end; 5 : begin edit13.text := palavras[x]; edit14.text := valores[x] end; 6 : begin edit15.text := palavras[x]; edit16.text := valores[x] end; end; end; <<< [Error] Unit1.pas(121): Constant expression expected end; end; end; end; end; end. abraço
  5. Ok jhonas, obrigado, tentei me virar sozinho, mas cheguei a 1 erro no qual não consigo resolver. Já no fim, nos end;. [error]Unit1.pas(120): Constant expression expected Se puder me dizer o que significa ou como resolver eu agradeço
  6. olá jhonas o exemplo funcionou bem mas me ocorreu um problema. Meu programa consiste em pegar dados de uma tabela jogar em um formulario da web, receber informações deste site e puxar para o memo. Só que dependendo do cliente o memo apresenta mais linhas ou menos linhas. por exemplo: BancoCódigo do Banco REAL 123456 descriçãoValor descriçãoaqui2.000,00 descrição2aqui2.200,00 descrição3aqui2.000,00 valor1valor2valor3 2.000,00242,622.581,48 1ªpergunta exitem somente 3 tipos de descições, a descriçãoaqui a descrição2aqui e a descrição3aqui como faço para o sistema reconhecer cada uma destas pela ordem que esta aparecendo e jogar em seus tedits respectivos. exemplo: if (achar a descriçãoaqui) ou (descrição2aqui) ou (descrição3aqui) then copiar os numeros a seguir nesta linha e partir para a proxima até acabar as linhas que começam com tais descrições? e como copiar também esta descrições escritas em tedits? 2ªpergunta Como o numero de linhas nem sempre é o mesmo teria como fazer para ele ler os valores tomando como referência a linha de cima? por exemplo: a ultima linha 2.000,00242,622.581,48 nunca estará na ultima linha mas eu sei q ela sempre estará embaixa da linha valor1valor2valor3 tem como fazer para copiar os valores tomando como referência a linha de cima? só me falta isso para completar esse capitulo do memo.
  7. Ahhh, então é assim! Obrigado pelo seu tempo Jhonas, me será muito útil. Acho que a partir daqui consigo adaptar todo o resto Qualquer outra dúvida que me aparecer eu posto neste ou em outro tópico caso o assunto for outro. Abraço
  8. sim, já pensei em como separar os valores Na linha 4 e 6 jogaria todos os caracteres de palavras em um edit e os que possuem numeros em outra, conseguindo assim separar estes valores. Na ultima linha possuo 3 valores que podem variar a quantidade ( de 2000,00 para 20000,00 por exemplo) poderia separar cada valor varrendo o memo e pegando 2 valores alem da virgula para cada um dos valores. Porém sou novo em delphi e tudo é muito novo, não sei realmente como aplicar essas mudanças em seu exemplo. Não queria pedir muito, mas caso seja possivel me mostrar um exemplo de cada uma das 2 opções, ou me der uma luz no que fazer. Obrigado mais um vez.
  9. Olá jhonnas, vou utilizar este tópico pois se trata de quase o mesmo assunto. Tenho um form que joga o corpo da página da internet para um memo. Aqui vai o que esta escrito em meu memo: RGNome 222222222-2GIOROT BancoCódigo do Banco REAL 123456 descriçãoValor descriçãoaqui2.000,00 valor1valor2valor3 2.000,00242,622.581,48 preciso que fiquem separados como rg - 2222222222-2 nome giorot banco real código 123456 descrição - descriçãoaqui valor -2.500.00 valor1 - 2.000,00 valor2 - 242,62 valor3 - 2.581,48 não sei como separar os dados, mas sei que na linha 2, 4 e 6 posso separar os numeros das letras (só não sei como) e na ultima linha poderia talvez separar cada numero pegando eles 2 casas apos a ultima virgula. alguma ajuda?
×
×
  • Criar Novo...