Conversão de arquivos texto entre Windows e Linux

Publicado por Perfil removido (última atualização em 06/05/2010)

[ Hits: 9.674 ]

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

Comando ren para o Linux

Listar arquivos e diretórios com suas propriedades

Copia uma linha selecionada para um arquivo secundário

Logger

Comandos de um Shell


  

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