badjceo Postado Julho 7, 2006 Denunciar Share Postado Julho 7, 2006 Tenho que fazer um programa que converte arquivos texto de DOS para o formato UNIX..Arquivos texto do DOS o '\n' é representado por CR\LF,isto é, 0x0D seguido por 0x0A, enquanto que no UNIX, basta o caracter LF (0x0A).Mas como eu vou fazer um arquivo texto no DOS?Como vou ler o CR\LF no arquivo?Eu vou ter de escrever CR\LF quando criar o arquivo? Ex: Este é um arquivoCR\LF...valeu Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Julho 8, 2006 Denunciar Share Postado Julho 8, 2006 Já experimentou utilizar as funções básicas de C, que estão em stdio.h, para ler uma arquivo texto?Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 badjceo Postado Julho 8, 2006 Autor Denunciar Share Postado Julho 8, 2006 valeu pela dica mas conseguir abrir o arquivo eu consigo, mas não to entendendo como eu vou criar esse arquivo texto do DOS que tem CR\LF???? Com eu faço o C entender isso.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Julho 8, 2006 Denunciar Share Postado Julho 8, 2006 O seu programa vai ser compilado e executado no DOS, certo? Então, basta você passar o meta-caracter de nova linha ('\n') como você faria normalmente. Ele vai ser automaticamente transformado em CR + LF ao ser gravado no arquivo. Aliás, no DOS, se você mandar gravar somente o LF também acontece a mesma coisa (já que a nova linha é representada pelos dois caracteres):#include <stdio.h> #include <stdlib.h> void main() { FILE *h; char *arq = "c:\\teste.txt"; char CR = 13; char LF = 10; h = fopen(arq, "w"); fprintf(h, "teste\n"); fprintf(h, "outro teste"); fprintf(h, "%c", LF); fclose(h); }Certo? ;)Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 badjceo Postado Julho 9, 2006 Autor Denunciar Share Postado Julho 9, 2006 Valeu mesmo pela ajuda!!Consegui resolver esse problema!!Mas depois que eu fizer essa conversão de unix para DOS eu tenho de mudar a extensão do arquivo, ele tem de passar de ".unx" para ".dos". como eu faço isso??lembrando que meu programa vai ser chamado pela linha de comando (int arg c,char *argv[]).Logo eu não sei com que arquivo o usuário vai entrar, se eu soubesse era só utilizar rename() certo??Valeu Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Julho 9, 2006 Denunciar Share Postado Julho 9, 2006 Valeu mesmo pela ajuda!!Consegui resolver esse problema!!:)Mas depois que eu fizer essa conversão de unix para DOS eu tenho de mudar a extensão do arquivo, ele tem de passar de ".unx" para ".dos". como eu faço isso??É só trocar os últimos três caracteres do nome do arquivo, não? Ou, também pode ser os três próximos caracteres a partir do "." (o que dá no mesmo, se só existir uma extensão).lembrando que meu programa vai ser chamado pela linha de comando (int arg c,char *argv[]).Logo eu não sei com que arquivo o usuário vai entrar, se eu soubesse era só utilizar rename() certo??Claro que sabe, oras. Como você faz para abrir o arquivo??? Se você abre o arquivo é porque pegou o nome dele de argv[]. Se você pegou o nome do arquivo para abrí-lo você também pode pegar para renomeá-lo, não? E sim, é com rename() mesmo.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 badjceo Postado Julho 11, 2006 Autor Denunciar Share Postado Julho 11, 2006 valeu pelo toque, nessa parte do programa unix to dos já está tudo quase resolvido!!!Mas o meu programae tambem criptografa arquivos, por exemplo: como eu falei meu programa(Form.c) é chamado pela linha de comando e se ele for chamado assim:(form teste.unx d) ele pega o arquivo teste e converte para formato dos e grava como teste.dos. mas se le for chamado assim: (form teste.dat c chave) ele criptografa o arquivo teste de acordo com a chave e grava como teste.crp, se esse teste.crp for descriptografado ele tera de se chamar de novo teste.dat. mas tem um problema na hora de renomear eu não vou saber qual extensão colocar pois nem sempre o arquivo vai ser .dat.Eu soube que para fazer isso tem que fazer o seguinte: na hora que o teste.dat for criptografado sera gerado um arquivo teste.crp sendo que os quatro primeiros bytes desse arquivo serã: 'd','a','t','\0'. então quando ele for descriptografado sera gerado um arquivo teste.dat.as primeiras 4 letras de teste.crp terão de ser dat\0 é isso que eu tenho de fazer??abraço graymalkin, você está sendo uma grande ajuda!!O que nã e facil de encontrar em alguns foruns Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Julho 11, 2006 Denunciar Share Postado Julho 11, 2006 valeu pelo toque, nessa parte do programa unix to dos já está tudo quase resolvido!!!Mas o meu programae tambem criptografa arquivos, por exemplo: como eu falei meu programa(Form.c) é chamado pela linha de comando e se ele for chamado assim:(form teste.unx d) ele pega o arquivo teste e converte para formato dos e grava como teste.dos. mas se le for chamado assim: (form teste.dat c chave) ele criptografa o arquivo teste de acordo com a chave e grava como teste.crp, se esse teste.crp for descriptografado ele tera de se chamar de novo teste.dat. mas tem um problema na hora de renomear eu não vou saber qual extensão colocar pois nem sempre o arquivo vai ser .dat.Eu soube que para fazer isso tem que fazer o seguinte: na hora que o teste.dat for criptografado sera gerado um arquivo teste.crp sendo que os quatro primeiros bytes desse arquivo serã: 'd','a','t','\0'. então quando ele for descriptografado sera gerado um arquivo teste.dat.as primeiras 4 letras de teste.crp terão de ser dat\0 é isso que eu tenho de fazer??Essa é uma boa idéia. No caso, *você* terá que mandar ler os quatro primeiros bytes na hora de descriptografar para saber qual a extensão (isso não é automático). E também terá de lembrar de ignorar esses quatro primeiros bytes na hora de descriptografar o arquivo (e gravar o descriptografado).abraço graymalkin, você está sendo uma grande ajuda!!O que nã e facil de encontrar em alguns foruns:)Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 badjceo Postado Julho 11, 2006 Autor Denunciar Share Postado Julho 11, 2006 Valeu pela grande ajuda!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
badjceo
Tenho que fazer um programa que converte arquivos texto de DOS para o formato UNIX..
Arquivos texto do DOS o '\n' é representado por CR\LF,isto é, 0x0D seguido por 0x0A, enquanto que no UNIX, basta o caracter LF (0x0A).
Mas como eu vou fazer um arquivo texto no DOS?
Como vou ler o CR\LF no arquivo?
Eu vou ter de escrever CR\LF quando criar o arquivo? Ex: Este é um arquivoCR\LF...
valeu
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.