Fórum Ajuda com Arquivo Texto #322531
30/05/2006
0
Agradeço a todos de coração pela enorme ajuda com minha outra duvida
agora tenho + uma duvida que parece ser sinistra
eu tenho um arquivo ( JOB051.TXT ) que eu preciso pegar alguns dados dele e passar para outro arquivo ( JOB051MODIF.TXT ).
Se os Dados fossem todos na mesma linha eu usaria um copy(linha, 64, 7); e talz...
porem eu preciso pegar o campo q esta na linha de numero 10 do arquivo ( JOB051.TXT ).
O que eu sei:
function Copia(Linha: string): string;
var
MATR : string;
begin
MATR := Copy(Linha, 9, 4);
Eu copiaria na linha atual apartir do 9 caracter 4 caracters
o problema é q a matricula naum fica na primeira linha do arquivo + sim na 10 linha
qual procedimento devo tomar para passar para a decima linha e fazer a contagem dos caracters normalmente
sei la existe algo como Copy(Linha*10, 9, 4); eu ja tentei de tudo ate isso auhauahuah + naum funcionou :(
me ajudem pls...
abraço a todos!
Topetebg
Curtir tópico
+ 0Posts
30/05/2006
Eliasexner
Se vc estiver usando um arquivo de parametros onde cada linha representa um determinado
parametro, vc poderá usar a rotina abaixo que identifica o valor de cada linha baseado
no titulo do parametro. porém, o conteúdo deverá estar separado do sinal de ´=´ do título
Ex: MATRICULA=0032533
segue...
procedure TMainForm.Button1Click(Sender: TObject);
var
Lista: TStringList;
CaptionW: TCaption;
begin
if FileExists(ExtractFilePath(ParamStr(0)) + ´\Params.txt´) then
begin
Lista := TStringList.Create;
lista.LoadFromFile(ExtractFilePath(ParamStr(0)) + ´\Params.txt´);
ShowMessage(lista.Text);
if Lista.IndexOfName(UpperCase(´matricula´)) <> -1 then
begin
CaptionW := Lista.Values[UpperCase(´matricula´)];
ShowMessage(CaptionW);
end;
if lista <> nil then lista.free;
end;
end;
caso vc não use uma linha para cada parametro, vc poderia fazer um loop no arquivo até a linha 10 caso
ele esteja sempre nesta linha e ler o conteúdo com a função copy.
Espero ter ajudado
Gostei + 0
30/05/2006
Massuda
var Texto: TStringList; S: string; ... Texto := TStringList.Create; Texto.LoadFromFile(´seu\arquivo\texto.txt´); // como TStringList numera as linhas a partir de 0, // para pegar a linha 10, use Texto[9] S := Copy(Texto[9], 9, 4); Texto.Free; ...
Gostei + 0
30/05/2006
Topetebg
na linha 1 tem o pagamento do cara
na linha 5 tem o nome do cara
na linha 8 tem o cpf do cara
na linha 10 a matricula
dai ja vem outro cara abaixo de novo
linha 1 apos a 10 anterior tem o pagamento do cara novo
na linha 5 apos a linha 10 anterior tem o pagamento do cara novo
e etc...
e abixo comeca tudo de novo com outro cara
e etc
ate acabar o arquivo
so q naum é essa a ordem ta...
os numeros da linha eu inventei foi so como exemplo
na verdade a matricula fica na linha 52 da posicao 65 ate a posicao 72
era so pra ter uma ideia
eu disponibilizei uma copia do arquivo para vcs deem uma olhada e veja o q da pra ser feito
olha o link
http://www.megaupload.com/?d=3AJW2HNL
Vou explicar os campos q quero
MATRICULA: linha 52 posicao 65 ate 72
VLCM: linha 52 posicao 83 ate 85
dai pula 55 linhas e repete o procedimento acima
MATRICULA: posicao 65 ate 72
VLCM: posicao 83 a 85
dai pula + 55 linha e continua
MATRICULA: 65 ate 72
VLCM: 83 a 85
e assim por diante ate acabar o arquivo TXT
lembrando q cada matricula + VLCM em cada linha do outro arquivo de saida
ou seja
pula 52 linhas copia a matricula e vlcm para a linha 1 do outro arquivo texto
pula 55 linhas copia a matricula e vlcm para a linha 2 do outro arquivo texto
Pula + 55 linhas copia a matricula e vlcm para a linha 3 do outro arquivo texto
assim ate acabar o arquivo txt
blz? nada complicado...
lembrando o link
http://www.megaupload.com/?d=3AJW2HNL
Gostei + 0
31/05/2006
Aroldo Zanela
Como era de se esperar em arquivos textos para troca de informações, o arquivo possui identificadores de registros. No caso, o identificador que interessa neste momento é o [b:b99625e359]C1[/b:b99625e359], ou seja, apenas os registros (linhas) com identificador [b:b99625e359]C1[/b:b99625e359] nas duas primeiras posições de cada linha deverão ser avaliados.
Fiz um exemplo utilizando um TButton (btn1) e um TMemo (mmo1) com o arquivo baixado no diretório recebe.
var Arquivo: TextFile; LocalNome: string; LinhaDados: string; begin LocalNome := ´c:\recebe\job051.txt´; AssignFile(Arquivo, LocalNome); Reset(Arquivo); while not Eof(Arquivo) do begin Readln(Arquivo, LinhaDados); if Copy(LinhaDados, 1, 2)=´C1´ then begin mmo1.Lines.Add(Copy(LinhaDados, 65, 10)); end; end; CloseFile(Arquivo); end;
Gostei + 0
31/05/2006
Topetebg
brigadaum a todos... como sempre vc´s me ajudaram na minha angustia
:P
vlw galera vc´s sao nota 10
:D
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)