Memo quebrando linha
Gostaria saber o que esta acontecendo e se possível a solução.
Em um Memo1 começo adicionar linhas sequencialmente com números, sempre 18 números,em algum momento começa a quebrar a linha em varias posições.
Ex:
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123
456789101112131415161718
0123456789101112131415161718
012345
6789101112131415161718
012345678910
1112131415161718
0123456789101112131415161718
0123456789101112131415161718
O será que acontece???
Obrigado.
Luiz
Em um Memo1 começo adicionar linhas sequencialmente com números, sempre 18 números,em algum momento começa a quebrar a linha em varias posições.
Ex:
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123
456789101112131415161718
0123456789101112131415161718
012345
6789101112131415161718
012345678910
1112131415161718
0123456789101112131415161718
0123456789101112131415161718
O será que acontece???
Obrigado.
Luiz
Luiz Claudio
Curtidas 0
Melhor post
Natanael Ferreira
29/02/2016
Teste este código:
var
i: Integer;
begin
for i := 0 to Memo1.Lines.Count - 1 do
Memo1.Lines[i] := Copy(Memo1.Lines[i], 1, 10) + 'D' + Copy(Memo1.Lines[i], 11, 27) + 'D';
end;GOSTEI 1
Mais Respostas
Raylan Zibel
18/02/2016
Se mostrar o codigo de como ta adicionando as linhas, ajuda.
GOSTEI 0
Luiz Claudio
18/02/2016
procedure TCAN232Form.ComPortRxChar(Sender: TObject; Count: Integer);
var
InputBuffer: String;
i : integer;
AddS, HexS, CopyS : String;
begin
ComPort.ReadStr(InputBuffer, Count);
AddS := Copy(InputBuffer,1,Count);
HexS := '';//Limpa o HexS
Delete(InputBuffer,1,Count);
for i := 1 to Count do
begin
CopyS := Copy(AddS,i,1);
HexS := HexS + Format('%2.2x',[Byte(CopyS[1])])+ ' '
end;
Inc(j);
HexS := IntToStr(j) + ') ' + HexS ;
Memo.Lines.Add(HexS);
end;
var
InputBuffer: String;
i : integer;
AddS, HexS, CopyS : String;
begin
ComPort.ReadStr(InputBuffer, Count);
AddS := Copy(InputBuffer,1,Count);
HexS := '';//Limpa o HexS
Delete(InputBuffer,1,Count);
for i := 1 to Count do
begin
CopyS := Copy(AddS,i,1);
HexS := HexS + Format('%2.2x',[Byte(CopyS[1])])+ ' '
end;
Inc(j);
HexS := IntToStr(j) + ') ' + HexS ;
Memo.Lines.Add(HexS);
end;
GOSTEI 0
Natanael Ferreira
18/02/2016
Verifique se a string não está sendo adicionada com espaços em branco.
Troque:
Por:
Troque:
Memo.Lines.Add(HexS);
Por:
Memo.Lines.Add(Trim(HexS));
GOSTEI 0
Luiz Claudio
18/02/2016
Ainda não deu!
Luiz
Luiz
GOSTEI 0
Luiz Claudio
18/02/2016
Por a caso alguém poderia me mandar um exemplo de como poderia acrescentar um D ai no meu código?
Ex:
123456789D101112131415161718D
Ex:
123456789D101112131415161718D
GOSTEI 0
Raylan Zibel
18/02/2016
Por a caso alguém poderia me mandar um exemplo de como poderia acrescentar um D ai no meu código?
Ex:
123456789D101112131415161718D
Ex:
123456789D101112131415161718D
Voce pode concatenar antes de adicionar no memo..
Qual é o valor da variavel InputBuffer?
GOSTEI 0
Luiz Claudio
18/02/2016
Desculpa,mas eu não entendi valor!
GOSTEI 0
Raylan Zibel
18/02/2016
Qual seria o valor da string q vc lendo..?
GOSTEI 0
Luiz Claudio
18/02/2016
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
São vários os valores,eu coloquei assim para ficar melhor a contagem.
Eu gostaria de saber agora como fazer para colocar o D entre o 9 e 10 e depois do 18.
123456789D101112131415161718D
Obrigado, pela atenção!
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
0123456789101112131415161718
São vários os valores,eu coloquei assim para ficar melhor a contagem.
Eu gostaria de saber agora como fazer para colocar o D entre o 9 e 10 e depois do 18.
123456789D101112131415161718D
Obrigado, pela atenção!
GOSTEI 0
Luiz Claudio
18/02/2016
Obrigado,
Funcionou legal, era isso mesmo que eu precizava.
Obrigado.
Funcionou legal, era isso mesmo que eu precizava.
Obrigado.
GOSTEI 0
Marco Antônio
18/02/2016
O problema da quebra de linha resolveu? Pelo que entendi resolveu a concatenação. Mas o tema principal da sua dúvida conseguiu resolver tb?
abc.
abc.
GOSTEI 0