Conversão de arquivos texto entre Windows e Linux

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

[ Hits: 9.549 ]

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

Fwn - Formatador de arquivos .txt

Agenda eletrônica completa em C

Manipulando o arquivo mtab

Vi para Windows

Copia uma linha selecionada para um arquivo secundário


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts