Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
NoobDoDelphi Novato
Registrado: Segunda-Feira, 29 de Abril de 2019 Mensagens: 19
|
Enviada: Seg Mai 06, 2019 10:14 am Assunto: Lendo e identificando números pelo TStringList |
|
|
Bom dia galera, fiz um post esses dias tentando fazer a leitura e quebra de linhas com o stringlist em um arquivo txt que eu tenho aqui, porém pensando melhor sobre, achei melhor que fosse feito de outro jeito, gostaria de pedir ajuda de vocês hoje novamente na seguinte questão.
Tenho 1 arquivo de texto cheio de números da seguinte forma
0020110623101639000002 e várias linhas com números assim.
Os dois primeiros números me permitem identificar quais os tipos de informação que o resto dos números representam.
De que forma eu poderia fazer talvez um if para ler os dois primeiros números e depois identificar o restante da informação?, lembrando que eu tenho um manual que diz quantos caracteres tem cada informação e qual tipo de informação é essa , espero que possam me ajudar. |
|
Voltar ao Topo |
|
|
anderbelluno Colaborador
Registrado: Quarta-Feira, 23 de Novembro de 2011 Mensagens: 1030 Localização: Cianorte-PR
|
Enviada: Seg Mai 06, 2019 1:18 pm Assunto: |
|
|
Sempre usando o Copy meu jovem.
Faz umas constantes com o referimento de como deve dividir.
Depois pra ficar bunitim pode fazer um case nessas constantes.
E aí é só copiar como quiser. |
|
Voltar ao Topo |
|
|
NoobDoDelphi Novato
Registrado: Segunda-Feira, 29 de Abril de 2019 Mensagens: 19
|
Enviada: Seg Mai 06, 2019 3:35 pm Assunto: |
|
|
O copy eu até sei, oque eu não sei como fazer é verificar os dois primeiros números de cada linha |
|
Voltar ao Topo |
|
|
JoaoSHi Experiente
Registrado: Segunda-Feira, 25 de Agosto de 2008 Mensagens: 483
|
Enviada: Seg Mai 06, 2019 6:11 pm Assunto: |
|
|
Colega, vê se ajuda:
Código: | Procedure Button1Click(Sender: TObject);
var
st : TStringList;
i : Integer;
begin
st := TStringList.Create;
Try
for i := 0 to st.Count - 1 do
begin
if Copy(st[i],1,2) = '00' then
begin
ChamaRotina00();
end;
if Copy(st[i],1,3) = '001' then
begin
ChamaRotina001();
end;
end;
Finally
st.Free;
end;
end; |
|
|
Voltar ao Topo |
|
|
JoaoSHi Experiente
Registrado: Segunda-Feira, 25 de Agosto de 2008 Mensagens: 483
|
Enviada: Seg Mai 06, 2019 6:13 pm Assunto: |
|
|
Opa
Tem um primeiro IF Copy parece que não ficou completo, mas acredito que dá pra entender pelo próximo. |
|
Voltar ao Topo |
|
|
NoobDoDelphi Novato
Registrado: Segunda-Feira, 29 de Abril de 2019 Mensagens: 19
|
Enviada: Seg Mai 06, 2019 6:46 pm Assunto: |
|
|
Finalmente consegui galera, todos os codigos ajudaram muito, obrigado. |
|
Voltar ao Topo |
|
|
|