View Full Version : Aggiungere CR ad un file...
Sapete se esiste un comando o un programma in windows o Unix che mi permette di aggiungere ogni tot caratteri di un file il CR, in modo da visualizzarlo con un normale editor.
In pratica ho un file contenente le informazioni di una tabella di un database solamente il programma che mi crea questo file non aggiunge un CR a fine record e io mi ritrovo una stringa unica con tutti i record. Invece dovrei mettere poniamo ogni 80 caratteri il CR.
Help!
Neppure un comando in UNIX ??? eppure l'ho visto fare ....
se vuoi ti scrivo domani un programmeto x windows che lo fa....
In C...
#include <stdio.h>
#include <file.h>
#define ACAPO 80
int main(int argc, char *argv[])
{
FILE *f, *f2;
int num;
char buffer[ACAPO+1];
if(argc < 3)
{
printf("Usage : AddCR srcFile destFile\n");
return 1;
}
f = fopen(argv[1], "rt");
f2 = fopen(argv[2], "wt");
if(!f)
{
printf("Error openining source file\n");
return 1;
}
if(!f2)
{
printf("Error openining destinantion file\n");
return 1;
}
do {
num = fread(buffer, 1, ACAPO, f);
buffer[num] = "\n";
fwrite(buffer, 1, num+1, f2);
} while (num == ACAPO && !feof(f));
fclose(f);
fclose(f2);
return 0;
}
Attento che se lo compili sotto Unix e lo applichi al file, se lo riapri sotto Windows vedrai sempre tutto su una unica linea (Unix associa a /n solo il carattere ASCII 0x0A, mentre DOS/Windows associa a /n i caratteri 0x0A e 0x0D, cioè vuole anche un ritorno carrello per andare a capo)...
Se fosse solo il problema del ritorno carrello basta aprire il file con EDIT e poi salvarlo...e dopo lo potrai vedere bene anche con altri editor...
Ah, ovviamente se vuoi modificare il numero di caratteri dopo cui mandare a capo devi modificare il valore della costante ACAPO nel sorgente...
Originariamente inviato da cionci
[B]Attento che se lo compili sotto Unix e lo applichi al file, se lo riapri sotto Windows vedrai sempre tutto su una unica linea (Unix associa a /n solo il carattere ASCII 0x0A, mentre DOS/Windows associa a /n i caratteri 0x0A e 0x0D, cioè vuole anche un ritorno carrello per andare a capo)...
Se fosse solo il problema del ritorno carrello basta aprire il file con EDIT e poi salvarlo...e dopo lo potrai vedere bene anche con altri editor...
Ah, ovviamente se vuoi modificare il numero di caratteri dopo cui mandare a capo devi modificare il valore della costante ACAPO nel sorgente...
eh eh eh,:o come il buon vecchio Amiga;)
Ah...ovviamente tutto non provato e scritto da zero...
A voi l'eventuale debug ;)
Grazie Cionci, ma io cercavo qualcosa di già esistente... eventualmente proverò il programmetto...
Originariamente inviato da dani&l
[B]Grazie Cionci, ma io cercavo qualcosa di già esistente... eventualmente proverò il programmetto...
Vabbè...come ti pare...
eh che bo' fa'.
li abituate alla pappa pronta ... :(
tra l'altro ti ha dato anche del programmetto ... ;)
Eheh...allora gli ci lascio il bug ;)
astutoooo :D
P.S.
mi ricordi quei programmi per il Totocalcio (e altri ...) con la protezione cattiva per cui sembravano funzionare correttamente ma sparavano colonne a ca++o.
(poi magari vincevi con quelle :) )
Scusa Cionci, non volevo ossere offensivo ..... il problema è che mi qui al lavoro non ho montato il C, per cui avrei dei problemi a fare il programma, testarlo e debbuggarlo :D..... Il fatto che sono convinto che esiste una funzione simile già in Unix, ma forse mi sbaglio :(...
paura del moderatorando eh :D
Originariamente inviato da a2000
[B]paura del moderatorando eh :D
Ma nooooo!! Cosa dici mai ........ :o
:D:D!!
Originariamente inviato da dani&l
[B]Scusa Cionci, non volevo ossere offensivo ..... il problema è che mi qui al lavoro non ho montato il C, per cui avrei dei problemi a fare il programma, testarlo e debbuggarlo :D..... Il fatto che sono convinto che esiste una funzione simile già in Unix, ma forse mi sbaglio :(...
Esistono altri programmini simili...anche se ancora non ho capito se il problema è quello del ritorno carrello oppure è una questione di formattazione dell'output...
tel chì cotto e mangiato:
Sub dani(NumCar)
Open "c:\temp\prova1.txt" For Input As #1
Open "c:\temp\prova2.txt" For Output As #2
NumCar1 = LOF(1)
For i% = 1 To Int(NumCar1 / NumCar)
a$ = Input(NumCar, #1)
Print #2, a$ & Chr$(10)
Next i%
a$ = Input(NumCar1 Mod NumCar, #1)
Print #2, a$ & Chr$(10)
Close
End Sub
prevedo di potere ridurre le istruzioni a diciamo 1/3 (da 10 a 3) ;)
Il problema che questo file devo importarlo in excel, solo che quando lo apro lo vede come un unica stringa. Ecco la necessità di dividerlo ogni 80 caratteri (lunghezza del record).
Grazie A2000 della routine.
ma schiusa, amore mio, bello di papà, ma dillo subito che ti serve in excel.
allora è moooolto più semplice.
se vuoi puoi mandarmi un frammento di un file di esempio e te lo dimostro OnAction :p
Originariamente inviato da a2000
[B]ma schiusa, amore mio, bello di papà, ma dillo subito che ti serve in excel.
allora è moooolto più semplice.
se vuoi puoi mandarmi un frammento di un file di esempio e te lo dimostro OnAction :p
Ok, dimostramelo OnAction.... se vuoi pure il file dimmi dove te lo devo mandare, ma è sufficente che mi spieghi in teoria come fare ;)....
me lo devi mandare .lip cioè .zip quip come allegatop,
oppurep quip:
aa2000@inwind.it
ciaop
:p
benedetto ragazzo,
intanto guarda questo, e poi dimmi cosa desideri di più e di meglio e sarà fatto. :)
presto perchè tra un pò si chiude la lampada. :p
Mitico, funziona ;), o meglio, funzionano :D!
Gvazie cavo, mi hai tolto un peso... :cool:
da dOve cavo, se posso osave :p
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.