Conversão de arquivos texto entre Windows e Linux

Publicado por Ewerton Daniel de Lima (última atualização em 06/05/2010)

[ Hits: 9.022 ]

Download convtxt.c




Programa simples que converte arquivos txt gerados no Linux para serem abertos sem conflitos no Windows e vice-versa.

  



Esconder código-fonte

#include <stdio.h>

/*
Rotina que converte arquivos texto criados no
Linux para que sejam abertos sem conflitos
no Microsoft Windows;
Recebe como parâmetros:
1. Arquivo de Origem
2. Arquivo de Destino
A função não retorna valor
*/
void linToWin(FILE *origem, FILE *destino) {
    char c;
    while ((c=fgetc(origem)) != EOF) {
        if (c==10) {
            c = 13;
            fwrite(&c, 1, 1, destino);
            c = 10;
            fwrite(&c, 1, 1, destino);
            }
        else
            fwrite(&c, 1, 1, destino);
        }
    }

/*
Rotina que converte arquivos texto criados no
Microsoft Windows para que sejam abertos sem conflitos
no Linux;
Recebe como parâmetros:
1. Arquivo de Origem
2. Arquivo de Destino
A função não retorna valor
*/
void winToLin(FILE *origem, FILE *destino) {
    char c;
    while ((c=fgetc(origem)) != EOF) {
        if (c!=10)
            fwrite(&c, 1, 1, destino);
        }
    }

/*
Rotina que imprime ao usuário uma pequena
ajuda a ser impressa na tela caso haja algum
erro.
*/
void help() {
    printf("Uso:\n");
    printf("De Windows para Linux\n");
    printf("./convtxt wl arquivoOrigem arquivoDestino\n");
    printf("De Linux para Windows\n");
    printf("./convtxt lw arquivoOrigem arquivoDestino\n");
}


/*
Rotina principal
*/
int main(int argc, char *argv[]) {
    FILE *origem, *destino;
    int escolha;
    
    if (argc!=4) {
        help();
        return 1;
        }       
    if (strcmp(argv[1], "lw")==0)
        escolha=2;
    else if (strcmp(argv[1], "wl")==0)
        escolha=1;
    else {
        help();
        return 1;
        }
    origem = fopen(argv[2], "r");
    if (!origem) {
        printf("Não foi possível abrir o arquivo \"%s\"...\n", argv[2]);
        help();
        return 1;
        }
    destino = fopen(argv[3], "w");
    if (!destino) {
        printf("Não foi possível abrir o arquivo \"%s\"...\n", argv[3]);
        help();
        return 1;
        }
    if (escolha==1)
        winToLin(origem, destino);
    else
        linToWin(origem, destino);
    fclose(origem);
    fclose(destino);
    }

Scripts recomendados

gerador de BMPs

Executar um arquivo com o programa padrão no C#

Cadastro de arquivo usando ncurses como menu

Conversão integral de textos em letras maiúsculas

MyBank


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts