Walter e Rodinei... Fiz assim... Obrigado pela ajuda.... Espero que possa ajudar a todos.... Wesley
em um memo que tenha o seguinte valor... usei o ; para delimitar .... e a dica do Clécio para pegar os campos.... XXXXXXXXXXXXXXXXXXXXXXXXX ;SSSSSSS ; SSSSSSS ;XXXXXXXX ; { Funcao converte texto no valor desejado } function Converte( Texto: String ; CARACTER : Char ; Valor : String ): String; var TamanhoCampo : Integer ; Campo : string ; Espaco : string ; begin { Pega o tamanho do campo apenas } TamanhoCampo := length ( Trim( Texto ) ); { Usei assim.... para que eu possa escolher qual campo quero alterar .. poderia usar apenas assim.. Campo := trim( Texto ) } Campo := StringOfChar( CARACTER , TamanhoCampo ); { Se o Valor que quero Colocar for maior ou = não preciso colocar espaços } if Length ( Valor ) >= TamanhoCampo then Result:= StringReplace( Texto , Campo , Copy ( Valor , 1 , TamanhoCampo ) , [rfReplaceAll] ) { Caso seja menor coloco os espaços } else Result:= StringReplace( Texto , Campo , Valor + StringOfChar( ' ' , TamanhoCampo - Length( Valor ) ) , [rfReplaceAll] ) end; { N botao coloquei assim.... } procedure TForm1.btn1Click(Sender: TObject); var x : Integer ; y : Integer ; Campos : TStringList ; begin Campos := TStringList.Create ; try for x := 0 to mmo1.Lines.Count - 1 do begin { limpa } Campos.Clear; { pega os capos } ExtractStrings( [';'] , [] , PChar(mmo1.Lines.strings[x]) , Campos ) ; { Converte os Campos } for y := 0 to Campos.Count - 1 do begin { TROCO O X POR DELPHIBR } Campos.Strings[y] := Converte( campos.Strings[y], 'X' , DELPHIBR' ); { TROCO O S POR CONSEGUI } Campos.Strings[y] := Converte( campos.Strings[y], 'S' , CONSEGUI' ); end; { Limpa Linha } mmo1.Lines.Strings[x] := ''; { Cria uma linha do Memo } for y := 0 to Campos.Count - 1 do begin { TROCO os ; por Espaços } mmo1.Lines.Strings[x] := mmo1.Lines.Strings[x] + Campos.Strings[y] + ' '; end; end finally Campos.Free ; end; end; From: Walter Chagas Jr (BOL) Sent: Wednesday, October 29, 2008 4:43 PM To: delphi-br@yahoogrupos.com.br Subject: Re: [delphi-br] Layout o usuário coloca lá o tamanho que for necessario. A função corta a linha do arquivo a cada ponto e virgula ou qualquer outro caractere que voce quiser. Eu só faço Layouts de importação desse jeito. Muito melhor, mais facil de codificar e menos chances de erros do que aqualela parada de tamanho e Copy pra cá, copy pra lá. []s Walter Alves Chagas Junior Belo Horizonte - MG - Brazil [EMAIL PROTECTED] http://www.geocities.com/SiliconValley/Bay/1058 http://delphitocorporerm.blogspot.com/ MSN: [EMAIL PROTECTED] SKYPE: WalterChagasJr ----- Original Message ----- From: BandaLemuel To: delphi-br@yahoogrupos.com.br Sent: Wednesday, October 29, 2008 4:40 PM Subject: Re: [delphi-br] Layout Walter.. vlw... mas se eu fizer assim ele pode não manter o tamanho do campo que o usuario definir..... Wesley From: Walter Chagas Jr (BOL) Sent: Wednesday, October 29, 2008 2:37 PM To: delphi-br@yahoogrupos.com.br Subject: Re: [delphi-br] Layout faz os campos separados por ponto e virgula. use esta função pra ir cortando a string a medida que ela vai lendo um campo function ParteTexto(var Frase: string; Parte: string): string; // // Retorna uma parte de um texto antes de um caractere especificado // var i,max: integer; buff: string; begin i := 1; buff := ''; max := length(parte); while (i <= length(Frase)) and (buff <> parte) do begin buff := buff + Frase[i]; if length(buff) > max then buff := copy(buff,2,max); inc(i); end; if buff = Parte then begin Result := copy(Frase,1,i - max -1); Frase := copy(Frase,i,length(Frase)+1 -i); end else begin Result := Frase; Frase := ''; end; end; []s Walter Alves Chagas Junior Belo Horizonte - MG - Brazil [EMAIL PROTECTED] http://www.geocities.com/SiliconValley/Bay/1058 http://delphitocorporerm.blogspot.com/ MSN: [EMAIL PROTECTED] SKYPE: WalterChagasJr ----- Original Message ----- From: BandaLemuel To: delphi-br@yahoogrupos.com.br Sent: Wednesday, October 29, 2008 3:19 PM Subject: [delphi-br] Layout Lista Seguinte... eu não tenho idéia como fazer já procurei mas não achei.... estou desenvolvendo um sistema para imprimir nota fiscal.. eu queria fazer com que o usuario definisse um layout proprio.... queria fazer tipo assim.... XXXXXXXXXXXXXXXXXXXXXX CCCCCCC NNNNNNN NNNNNNNNNNNNNNNNNN FFFFFFF GGGGGGG E ai o meu sistema procurasse o Caracter X e substituisse pelo campo que eu queira.... isso é facil... mas como posso saber qntos X o usuario colocou... para que ai eu corte a minha string do tamanho que o cliente definiu ??? Alguem ja fez isso ou tem ideia de como posso fazer isso ??? Vlw.... Wesley [As partes desta mensagem que não continham texto foram removidas] __________ Informa��o do ESET NOD32 Antivirus, vers�o da vacina 3564 (20081028) __________ A mensagem foi verificada pelo ESET NOD32 Antivirus. http://www.eset.com [As partes desta mensagem que não continham texto foram removidas] __________ Information from ESET NOD32 Antivirus, version of virus signature database 3566 (20081029) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com [As partes desta mensagem que não continham texto foram removidas] __________ Informa��o do ESET NOD32 Antivirus, vers�o da vacina 3566 (20081029) __________ A mensagem foi verificada pelo ESET NOD32 Antivirus. http://www.eset.com [As partes desta mensagem que não continham texto foram removidas] __________ Information from ESET NOD32 Antivirus, version of virus signature database 3568 (20081030) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com [As partes desta mensagem que não continham texto foram removidas]