Fórum ajustar texto no listbox delphi #459750
29/10/2013
0
CONSULTA SCPC INTEGRADO
S
OLICITANTE 52184622 - SP-SCP/S.O.S CONECTIVIDADE NO
ME CONSULTA MIX GESTCO DOC
UMENTOS CPF************ RG0000222222222 PARA
METROS BC000 AG0000 CC000000 CH00000000 QT00
----------
-- S C P C ---------------------------------- N A D A C O N S T A
------------
CONSULTAS ANTERIORES --------------------- N A D A C O N S T A
------------ D
EVOLUCOES INFORMADAS P/ CCF ------------- N A D A C O N S T A
------------ CONSULTAS ANTERIORES --------------------- N A D A C O N S T A
--
---------- SINTESE CADASTRAL ----------------------------------------------
NOME
ANDRE LUIZ UCELLA DOCUM
ENTO CPF*********** T.ELEITOR 0000000000000
NASCIME
NTO 14/12/1987
NOME MAE
ANA ROSA FERREIRA UCELLA
INFORMACOES CONFIDENCIAIS SAO PAULO 28/10/2013 171858 TCP0000
NADA CONSTA - CONSULTA 00000
E TERIA QUE SAIR ASSIM :
CONSULTA SCPC INTEGRADO
SOLICITANTE 52184622 - SP-SCP/S.O.S CONECTIVIDADE
NOME CONSULTA MIX GESTCO
DOCUMENTOS CPF00000000000 RG0000222222222
PARAMETROS BC000 AG0000 CC000000 CH00000000 QT00
------------ S C P C ---------------------------------- N A D A C O N S T A
------------ CONSULTAS ANTERIORES --------------------- N A D A C O N S T A
------------ DEVOLUCOES INFORMADAS P/ CCF ------------- N A D A C O N S T A
------------ CONSULTAS ANTERIORES --------------------- N A D A C O N S T A
------------ SINTESE CADASTRAL ----------------------------------------------
NOME ANDRE LUIZ UCELLA
DOCUMENTO CPF00000000000 T.ELEITOR 0000000000000
NASCIMENTO 14/12/1987
NOME MAE ANA ROSA FERREIRA UCELLA
INFORMACOES CONFIDENCIAIS SAO PAULO 28/10/2013 171858 TCP9999
NADA CONSTA - CONSULTA 13181
alguem sabe como ajustar este texto ? lembrando que nem sempre sera as mesmas informações no listbox.
Andre Ucella
Curtir tópico
+ 0Posts
29/10/2013
Marcos Oliveira
Como é que você recebe esse retorno? Via arquivo texto?
Att,
Marcos
Gostei + 0
29/10/2013
Andre Ucella
Procedure para receber as informações e conexão com a SCPC
procedure TForm4.EnviaCSR10(Requisicao : String);
var
Texto01, Texto02, Texto03, Texto04, Texto05, Texto06: String;
Texto07, Texto08, Texto09, Texto10, Texto11, Texto12: String;
CodigoRet, ResultCons, Resposta: String;
QtdeTextos: Integer;
NovaReq: Boolean;
begin
{Envia a Consulta e trata a resposta}
try
CodigoRet := '';
ResultCons := '';
IdTCPClient:=TIdTCPClient.Create(nil);
IdTCPClient.Host := '187.11.182.170';
IdTCPClient.Port := 5020;
IdTCPClient.Connect(10000); {Timeout de 10 segundos}
repeat
NovaReq := False;
{Tenta enviar a string do layout para o servidor de aplicação...}
IdTCPClient.Write(Requisicao);
{Espera o retorno da resposta do servidor}
Resposta := IdTCPClient.CurrentReadBuffer;
{Verifica se o servidor retornou alguma resposta vazia}
if Trim(Resposta) = '' then
raise Exception.Create('O servidor retornou uma resposta inesperada.');
{Pega o retorno da resposta}
CodigoRet := Copy(Resposta, 40, 1);
{Texto da Resposta}
Texto01 := Copy(TrocaCaracterEspecial(Resposta, True), 049, 79);
Texto02 := Copy(TrocaCaracterEspecial(Resposta, True), 128, 79);
Texto03 := Copy(TrocaCaracterEspecial(Resposta, True), 207, 79);
Texto04 := Copy(TrocaCaracterEspecial(Resposta, True), 286, 79);
Texto05 := Copy(TrocaCaracterEspecial(Resposta, True), 365, 79);
Texto06 := Copy(TrocaCaracterEspecial(Resposta, True), 444, 79);
Texto07 := Copy(TrocaCaracterEspecial(Resposta, True), 523, 79);
Texto08 := Copy(TrocaCaracterEspecial(Resposta, True), 602, 79);
Texto09 := Copy(TrocaCaracterEspecial(Resposta, True), 681, 79);
Texto10 := Copy(TrocaCaracterEspecial(Resposta, True), 760, 79);
Texto11 := Copy(TrocaCaracterEspecial(Resposta, True), 839, 79);
Texto12 := Copy(TrocaCaracterEspecial(Resposta, True), 918, 79);
{Verifica se houve erro}
if CodigoRet = '9' then
lst1.Items.Add(Texto01)
else
begin
{Quantidade de textos preenchidos}
QtdeTextos := StrToInt(Copy(Resposta, 47, 2));
{Verifica o resultado da consulta}
ResultCons := Copy(Resposta, 41, 1);
{Número da consulta ---> virá apenas quando nada consta}
//lblNumero.Caption := Copy(Resposta, 42, 5);
{Verifica se a transmissão foi concluida}
if QtdeTextos >= 01 then lst1.Items.Add(Texto01);
if QtdeTextos >= 02 then lst1.Items.Add(Texto02);
if QtdeTextos >= 03 then lst1.Items.Add(Texto03);
if QtdeTextos >= 04 then lst1.Items.Add(Texto04);
if QtdeTextos >= 05 then lst1.Items.Add(Texto05);
if QtdeTextos >= 06 then lst1.Items.Add(Texto06);
if QtdeTextos >= 07 then lst1.Items.Add(Texto07);
if QtdeTextos >= 08 then lst1.Items.Add(Texto08);
if QtdeTextos >= 09 then lst1.Items.Add(Texto09);
if QtdeTextos >= 10 then lst1.Items.Add(Texto10);
if QtdeTextos >= 11 then lst1.Items.Add(Texto11);
if QtdeTextos = 12 then lst1.Items.Add(Texto12);
{Verifica se a existem dados para serem transmitidos}
if CodigoRet = '1' then
begin
NovaReq := True;
Requisicao := #13;
end;
end;
until NovaReq = False;
if ResultCons = '0' then lbl5.Caption := 'Nada Consta'
else
if ResultCons = '1' then lbl5.Caption := 'Nada Consta com Passagem'
else
if ResultCons = '2' then lbl5.Caption := 'Constam Informações';
finally
IdTCPClient.Disconnect;
RespostaLiteral:= StrToPChar(Resposta);
end;
end;
EVENTO DO BOTAO DE CONSULTA, onde realiza a consulta e alimenta as informações.
procedure TForm4.btn1Click(Sender: TObject);
var
StrEnvio: String;
begin
{Monta a string de envio padrão para uma consulta integrada}
StrEnvio := Completa( 6, 'D', 'CSR10') +
Completa( 2, 'D', '09') +
Completa(15, 'D', '') +
Completa( 8, 'E', edt1.Text, '0') +
Completa( 8, 'D', edt2.Text) +
Completa( 8, 'D', 'CIN') +
Completa(20, 'D', 'CPF'+edt3.Text) +
Completa(20, 'D', 'RG222222222') +
Completa(20, 'D', '') +
Completa(50, 'D', 'CONSULTA MIX GESTÃO') +
Completa( 8, 'D', '00000000') +
Completa( 8, 'D', FormatDateTime('ddmmyyyy', Date)) +
{Informações do cheque via digitação}
Completa( 3, 'E', '', '0') +
Completa( 5, 'E', '', '0') +
Completa(15, 'E', '', '0') +
Completa( 1, 'E', '', '0') +
Completa( 8, 'E', '', '0') +
Completa( 1, 'E', '', '0') +
{---------------------------------------}
Completa( 1, 'E', '', '0') +
Completa( 2, 'D', 'XX') +
Completa(11, 'E', FloatToStr((10.55 * 100)), '0') +
Completa(50, 'D', '') +
Completa( 4, 'E', '', '0') +
Completa( 9, 'E', '', '0') +
Completa( 8, 'E', '', '0') +
Completa( 1, 'D', '') +
Completa( 8, 'E', '', '0') +
Completa( 1, 'E', 'C');
try
lst1.Items.BeginUpdate;
lst1.Clear;
EnviaCSR10(StrEnvio);
finally
lst1.Items.EndUpdate;
end;
end;
Gostei + 0
29/10/2013
Andre Ucella
Gostei + 0
29/10/2013
Marcos Oliveira
Gostei + 0
29/10/2013
Andre Ucella
Gostei + 0
29/10/2013
Marcos Oliveira
Fiz o código abaixo, levando em consideração que o texto esteja tudo em uma linha só.
Caso precise, é só adaptar às suas necessidades.
var
i, Contador: Integer;
s, Texto: String;
begin
Texto := 'TEXTO A SER MANIPULADO...';
s := '';
Contador := 0;
for i := 1 to Length(Texto) do
begin
if Contador = 79 then
begin
ListBox1.Items.Append(s); // Aqui é adicionado a string no ListBox.
s := '';
Contador := 1;
end
else
Inc(Contador);
s := s + Copy(Texto,i,1);
end;
end;
Att,
Marcos
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)