Conversão de arquivos texto entre Windows e Linux

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

[ Hits: 9.528 ]

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

leitura/escrita de dados/estruturas em arquivo

buildtgz

codificador de texto

Compactando arquivos de log *.txt

[C] Apaga linha em um Arquivo


  

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