Ir ao conteúdo
  • Cadastre-se

Aumentar salario Arquivo


Visitante: rmk90

Posts recomendados

Visitante: rmk90
 

RESOLVIDO JÁ!!!

Estou com duvida agora no importar, quando eu exporto o dat para txt sai perfeito...

mas quando importo no programa fica tudo errado os espaços. Meu amigo falo q eu tenho q fazer o exportar seperando com - ou /...algo do tipo depois no importar eu faço nome até / mas não entendi muito bem como eu posso fazer isso.Se alguem conseguir me dar uma luz. :D

program prog_final;

uses crt;

type pessoas = record

nome: string[20];

endereco: string[30];

bairro:string[15];

cidade:string[15];

idade: string[3];

sexo : string;

salario: string[8];

end;

type salario = record

a: string;

b: string;

c: string;

end;

var arquivo,temp: file of pessoas;

arquivo_exp : text ;

cad : pessoas;

opcao : string;

sal : salario;

_____________EXPORTAR

procedure exportar_arq;

var barra : string;

begin

assign(arquivo_exp, 'c:\users\cado\downloads\arquivo_exp.txt');

reset(arquivo);

rewrite(arquivo_exp);

while not eof (arquivo) do

begin

read(arquivo,cad);

while length (cad.nome) < 20 do cad.nome:= cad.nome +' ';

//sexo nao precisa pois é 1 bite//

while length (cad.idade) < 3 do cad.idade := ' '+cad.idade+' ' ;

while length (cad.cidade) < 15 do cad.cidade := ' '+cad.cidade+' ';

while length (cad.endereco) < 30 do cad.endereco := cad.endereco +' ';

while length (cad.bairro) < 15 do cad.bairro:= cad.bairro +' ';

while length (cad.salario) < 8 do cad.salario:= cad.salario +' ';

barra:= cad.nome;

barra:= barra + cad.sexo ;

barra:= barra + cad.idade ;

barra:= barra + cad.cidade ;

barra:= barra + cad.endereco ;

barra:= barra + cad.bairro ;

barra:= barra + cad.salario ;

writeln(arquivo_exp, barra);

end;

close(arquivo_exp);

gotoxy(30,3);write('Arquivo exportado com sucesso!');

readkey;

end;

_____________IMPORTAR

procedure importar_arq;

var entra :integer;

salario, linha, nome, endereco,

bairro, cidade, idade, altura ,sexo :string;

begin

assign(arquivo_exp, 'c:\users\cado\downloads\arquivo_exp.txt');

reset(arquivo);

reset(arquivo_exp);

begin

while not eof(arquivo_exp) do

begin

readln(arquivo_exp,linha);

nome:=copy(linha,1,20);

sexo:=copy(linha,21,1);

idade:=copy(linha,23,3);

cidade:=copy(linha,27,15);

endereco:=copy(linha,43,30);

bairro:=copy(linha,74,15);

salario:=copy(linha,90,8);

seek(arquivo,0);

entra := 0;

while not eof(arquivo) do

begin

read(arquivo,cad);

if nome <> cad.nome then

begin

//writeln('entrou'); readkey;

cad.nome:=nome;

cad.sexo:=sexo;

cad.idade:= idade;

cad.cidade:=cidade;

cad.endereco:=endereco;

cad.bairro:=bairro;

cad.salario:= salario;

write(arquivo,cad);

end;

end;

end;

gotoxy(1,15);writeln('Arquivo importado com sucesso!');

writeln(cad.nome);

readkey;

end;

close(arquivo);

close(arquivo_exp);

end;

Link para o comentário
Compartilhar em outros sites

Visitante: rmk90
 

editei alí...

se alguem conseguir me ajudar!!!

mudei o meu exportar...

PROCEDURE exportar;
VAR //idade, renda : string;
linha : string;
BEGIN
assign(arquivo_exp, 'c:\users\cado\downloads\arquivo_exp.txt');
RESET(ARQUIVO);
REWRITE(arquivo_exp);
WHILE NOT EOF(ARQUIVO) DO
BEGIN
READ(ARQUIVO,cad);
//str (cad.idade, idade);
//str (cad.salario, salario);
linha :=upcase (cad.nome + '*' + cad.sexo + '*' + cad.idade + '*' + cad.cidade + '*' +
cad.bairro + '*' + cad.endereco + '*' + cad.salario + '*');
writeln(arquivo_exp,linha);
END;
CLOSE(arquivo_exp);
GOTOXY(1,15);
WRITELN('REGISTROS EXPORTADOS PARA O ARQUIVO: EXP_ARQ.TXT');
READKEY;
END;

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

editei alí...

se alguem conseguir me ajudar!!!

mudei o meu exportar...

PROCEDURE exportar;

VAR //idade, renda : string;

linha : string;

BEGIN

assign(arquivo_exp, 'c:\users\cado\downloads\arquivo_exp.txt');

RESET(ARQUIVO);

REWRITE(arquivo_exp);

WHILE NOT EOF(ARQUIVO) DO

BEGIN

READ(ARQUIVO,cad);

//str (cad.idade, idade);

//str (cad.salario, salario);

linha :=upcase (cad.nome + '*' + cad.sexo + '*' + cad.idade + '*' + cad.cidade + '*' +

cad.bairro + '*' + cad.endereco + '*' + cad.salario + '*');

writeln(arquivo_exp,linha);

END;

CLOSE(arquivo_exp);

GOTOXY(1,15);

WRITELN('REGISTROS EXPORTADOS PARA O ARQUIVO: EXP_ARQ.TXT');

READKEY;

END;

Olá,

rmk90, em se tradando de importação e exportação devem-se ser cosidarados alguns fatores, como por exemplo "para que exportar", "como devem ficar os dados exportados", "para que importar" e "como esses dados que estão fora do programa estão estruturados (para serem importados)".... Ou seja, uma coisa vai depender da outra. Como você vai importar algo que você não sabe como está estruturado?

Para haver impotação obrigatoriamente deve existir um padrão que defina como o arquivo está armazendo (nem que o padrão seja não ter, que neste caso não serve para você, rs). Em outras palavras:

"a exportação deve ser feita baseada na forma de como poderá ser importado"

Quando seu amigo disse:

q eu tenho q fazer o exportar seperando com - ou /...algo do tipo

Esse "tenho" na verdade deve ser entendido como "posso" (isso que ele quis dizer). Já que existem infinitas possibilidade para fazer essa exportação / importação.

"Um algorito é UMA solução para o problema, e não A solução"

Quando ele se referiu "-" ou "/" ele deve ter se referido a você marcar onde começa e onde termina cada registro ou cada campo.

Ex.

Simon Viegas/Analista de Sitemas/Salvador/Bahia
Lula/Presidente do Brasil/Brasilia/Distrito Federal

Neste caso eu separei cada campo por uma "/", e cada registro por "uma quebra de linha", ou seja, cada linha é um registro e cada dado está separado por barras...

Só que ai vem a questão, repare que o pascal não implementa sozinho essa separação por caracteres, isso deve ser feito por você, e acredite vai dar um trabalhinho.

Eu sugiro que você faça a coisa mais simples. "Separe todos os campos por linhas !!!"

Simon Viegas
Analista de Sitemas
Salvador
Bahia
Lula
Presidente do Brasil
Brasilia
Distrito Federal

Problema resolvido. Basta ler linha por linha, e jogar na variável corresponente. (observe que neste exemplo a separação de registros está sendo feita por quantidade de linhas, ou seja, a cada 4 linhas temos um registro novo!!!)

Tente fazer assim, lembre-se que terá que adaptar a "exportação" para colocar de linha em linha (só lembrando da relação que exite entre importar/exportar, tem que está padronizado entre si).

RESUMINDO

Exporte cada campo como uma linha

writeln(arquivo_exp,dado1);
writeln(arquivo_exp,dado2);
writeln(arquivo_exp,dado3);
writeln(arquivo_exp,dado4);

e leia cada linha como um dado

readln(arquivo_exp,dado1);
readln(arquivo_exp,dado2);
readln(arquivo_exp,dado3);
readln(arquivo_exp,dado4);

ou algo do tipo...

Após tudo rodar direitinho, a gente te ajuda a fazer utilizando um marcador, como você fez utilizando um "*".

Eu identei o seu código...

(quando postar um código, use as tags CODE (#))

OBS.: Esse código está funcionando? Que eu saiba UpCase só serve para "char", ele não aceita "string"s. Se está rodando por favor me digar qual a versão do Pascal (é possível implementar outra "function" com o mesmo nome...) Se não tiver rodando e você precisar tornar uma "string" maiúscula, você terá que implementar isso... é bem fácil, basta pegar caractere por caractere, tornar maiuscula e ir concatenando numa "string". É possível pegar um caractere de uma "string" assim:

nome:=Simon Viegas;
letra:=[B]nome[1][/B]; {letra vai ser igual a "S"}

Seu código identado.

PROCEDURE exportar;
VAR
//idade,
//renda :string;
linha :string;
BEGIN
assign(arquivo_exp, 'c:\users\cado\downloads\arquivo_exp.txt');
RESET(ARQUIVO);
REWRITE(arquivo_exp);
WHILE NOT EOF(ARQUIVO) DO
BEGIN
READ(ARQUIVO,cad);
//str (cad.idade, idade);
//str (cad.salario, salario);
linha :=upcase (cad.nome + '*' + cad.sexo + '*' + cad.idade + '*' + cad.cidade + '*' +
cad.bairro + '*' + cad.endereco + '*' + cad.salario + '*');
writeln(arquivo_exp,linha);
END;
CLOSE(arquivo_exp);
GOTOXY(1,15);
WRITELN('REGISTROS EXPORTADOS PARA O ARQUIVO: EXP_ARQ.TXT');
READKEY;
END; {fim procedure exportar}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!