Fórum Imprimir memo em matricial... #252441
28/09/2004
0
agora estou fazendo assim:
Writeln(Arq,Obs);
e assim não consigo controlar, pois as vezes preciso imprimir um outro campo na frente.
Janete
Curtir tópico
+ 0Posts
29/09/2004
Janete
Eu criei as variaveis para receber o campo memo da tabela e estou tentando separar a qtde de caracteres desejado para imprimir em linha diferentes:
var Obs, Obs1, Obs2, Obs3, Obs4 : string
begin
Obs:=TbPedidosObservacao.Value;
Obs1:=Copy(Obs,1,36);
Obs2:=Copy(Obs,37,73); //* essa linha q não quer dar certo
Obs3:=Copy(Obs,74,110);
Obs4:=Copy(Obs,111,147);
* A primeira linha dá certo ele pega do 1º caracter digitado e vai só até o 36º, pois 36 é a qtde q quero imprimir em cada linha, e a segunda não imprime somente 36 está imprimindo 62 não sei porq, ele pega do 37º caracter e vai até 99, a terceira linha dá certo tb ele pega do 74º caracter e imprimi até o 110º. Somento a 2ª linha q não estou conseguindo, não sei o q pode estar errado. Alguém tem alguma ideía de como fazer isso?
Gostei + 0
29/09/2004
Mago M3rl1n
Gostei + 0
29/09/2004
Janete
vc poderia me dar um exemplo de como fazer?
Gostei + 0
29/09/2004
Mago M3rl1n
crie uma variavel de buffer e outra variavel para controlar seu tamanho.
var
buffer: pchar;
sizebuffer: integer;
Aloque um espaço de memoria para o buffer:
buffer := StrAlloc(60000);
Crie uma procedura que copie uma string para o buffer:
procedure EnviaString(Aux: String);
begin
StrPCopy(Buffer + SizeBuffer, Aux);
SizeBuffer := SizeBuffer + Length(Aux);
end;
Para imprimir o conteudo do buffer, faz assim :
procedure Impressao;
var
Prn: TextFile;
I: Integer;
begin
AssignFile(Prn, ´LPT1´);
Rewrite(Prn);
try
for I := 0 to SizeBuffer do
write(Prn, Buffer[I]);
writeLn(Prn, ´´);
finally
Close(Prn);
end;
end;
Gostei + 0
02/01/2008
Rguilemond
ERRADO:
------------------------------------------------
var Obs, Obs1, Obs2, Obs3, Obs4 : string
begin
Obs:=TbPedidosObservacao.Value;
Obs1:=Copy(Obs,1,36);
Obs2:=Copy(Obs,37,73); //* essa linha q não quer dar certo
Obs3:=Copy(Obs,74,110);
Obs4:=Copy(Obs,111,147);
CORRETO:
------------------------------------------------
var Obs, Obs1, Obs2, Obs3, Obs4 : string
begin
Obs:=TbPedidosObservacao.Value;
Obs1:=Copy(Obs,1,36);
Obs2:=Copy(Obs,37,36);
Obs3:=Copy(Obs,74,36);
Obs4:=Copy(Obs,111,36);
Explicando: O comando Copy tem o seguinte formato:
Copy( inicio, quantos );
Onde: ´inicio´ é a posição inicial do texto que se deseja extrair.
´quantos´ são quantos caracteres se deseja extrair a partir da posição inicial.
Somente isto.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)