Re: OT: Script per elaborare un file di testo

2011-12-14 Thread simozack
Il 14 dicembre 2011 16:14, pac  ha scritto:
> Un'azienda mi dovrebbe mandare un file di testo con una lunga serie di
> campi tutti a larghezza fissa e predeterminata, dovrei importarlo poi
> in OpenOffice per riordinarlo etc etc
> I campi non divisi da alcun separatore di campo.
> Domandavo quindi se qualcuno mi poteva aiutare a fare uno script in
> cui si mette ";" nella posizione 16 poi nella 66, 116 e così via senza
> bisogno di fare in cobol un programmino che legge il file in input e
> ne crea una copia in output con relativi separatori di campo.

E' da un po' che non uso OpenOffice (purtroppo in ufficio sono
vincolato ad Office), ma se apri il file (di testo) direttamente con
Calc mi pare di ricordare che puoi definire tu come incolonnare il
tutto (ti dovrebbe apparire una procedura guidata). Se non ricordo
male, però, devi farlo aprendo Calc e lanciare Apri da lì e non
lanciare con il doppio clic il file.

Altrimenti, Python è formidabile in questi casi. Ti basta sapere un
paio di istruzioni e fa tutto lui. Se hai bisogno dimmi che te lo
scrivo io, tanto sono 5 minuti (si sta più a definire come devono
essere suddivisi i campi che altro).

Ciao,
Simone


--
Per REVOCARE l'iscrizione alla lista, inviare un email a
debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per
problemi inviare un email in INGLESE a listmas...@lists.debian.org

To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/CAFnaeGKVQdY3q-effnf-9HGc0=D=v27uncsba-a-j9sm40e...@mail.gmail.com



Re: OT: Script per elaborare un file di testo

2011-12-14 Thread giuse...@iclam.191.it

Il 14/12/2011 16.14, pac ha scritto:

Un'azienda mi dovrebbe mandare un file di testo con una lunga serie di
campi tutti a larghezza fissa e predeterminata, dovrei importarlo poi
in OpenOffice per riordinarlo etc etc
I campi non divisi da alcun separatore di campo.
Domandavo quindi se qualcuno mi poteva aiutare a fare uno script in
cui si mette ";" nella posizione 16 poi nella 66, 116 e così via senza
bisogno di fare in cobol un programmino che legge il file in input e
ne crea una copia in output con relativi separatori di campo.
Grazie comunque



io uso un'utility in perl per mettere i separatori

ciao
Beppe

#!/usr/bin/perl -w
# $file_in nome file in lettura
# $flusso_in handle in lettura
# $file_out nome file in scittura
# $flusso_out handle in scrittura
# $riga riga letta dal file

$file_in = "\/cmd\/list\/file_dati";
$file_out = "\/cmd\/list\/file_dati.csv";
$flusso_in = "IN";
$flusso_out = "OUT";
$riga = "";
$temp = "";
# print ( "File in Lettura: $file_in\n, File in Scrittura: $file_out\n" );
open ($flusso_in, "< $file_in") or die "impossibile aprire: $file_in\n";
open ($flusso_out, "> $file_out") or die "impossibile aprire: $file_out\n";

# legge dal file $file_in e scrive in $file_out
# legge ogni riga ed inserisce ; per creare un file csv
# alla fine del $file_in chiude entrambi i files
# attenzione la prima colonna e' = 0

while ($riga = <$flusso_in>) {
   if ( length ($riga) > 130 ) {
   $temp = join (';',
join('.',
substr ($riga, 0, 14),
substr ( $riga, 15, 64),
substr ( $riga, 65, xx),
substr ( $riga, xx, xx),
substr ( $riga, xx, xx),
substr ( $riga,  xx, xx),
substr ( $riga, xx, x),
"\r"
);
#   print $flusso_out length ($riga);
   print $flusso_out "$temp\n";
   }
}
close ($flusso_in);
close ($flusso_out);



--
Per REVOCARE l'iscrizione alla lista, inviare un email a 
debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per

problemi inviare un email in INGLESE a listmas...@lists.debian.org

To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4ee8d473.2040...@iclam.191.it



Re: OT: Script per elaborare un file di testo

2011-12-15 Thread pac
Il 14 dicembre 2011 19:10, Davide Prina  ha scritto:
> On 14/12/2011 16:14, pac wrote:
>>
>> un file di testo con una lunga serie di campi tutti a larghezza fissa
>> e predeterminata,
>
>
> ok
>
>
>> dovrei importarlo poi in OpenOffice per riordinarlo etc etc
>
>
> cosa? e per quale motivo?
Perchè c'è un'addetta che deve estrarre dei dati e trascriverne altri,
quali il codice prodotto, la data di scadenza, il prezzo, la famiglia
e il marchio.
Se lo lasciamo in un file di testo con tutti i dati uniti, la
poveretta non riesce a capirci nulla. Quindi siccome non vale la pena
starci a lavorare più di tanto, un foglio elettronico va più che bene.
Risolve il problema con poco sforzo.
>
>
>> I campi non divisi da alcun separatore di campo.
>
>
> e che problema fa?
> usa il più potente editor esistente sulla faccia della Terra: sed! ;-)
> più gli altri strumenti GNU e puoi fare quello che vuoi: sort, uniq, cut,
> grep, ...
>
> Il tutto in tempi quasi immediati e con poco sforzo (se già conosci gli
> strumenti).
>
> Ciao
> Davide
>
> --
> Dizionari: http://linguistico.sourceforge.net/wiki
> Petizione per l'uso di formati accessibili nell'Unione Europea
> http://tinyurl.com/y6u4m5
> Non autorizzo la memorizzazione del mio indirizzo su outlook
>
>
>
> --
> Per REVOCARE l'iscrizione alla lista, inviare un email a
> debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per
> problemi inviare un email in INGLESE a listmas...@lists.debian.org
>
> To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact
> listmas...@lists.debian.org
> Archive: http://lists.debian.org/4ee8e67a.6040...@gmail.com
>


--
Per REVOCARE l'iscrizione alla lista, inviare un email a
debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per
problemi inviare un email in INGLESE a listmas...@lists.debian.org

To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/CAHmhrxDMK-FUJA50DmDZM9QpczZxmeUyyRTaiBhi=ovhwnv...@mail.gmail.com



Re: OT: Script per elaborare un file di testo

2011-12-15 Thread giuse...@iclam.191.it

Il 14/12/2011 18.33, NN_il_Confusionario ha scritto:

On Wed, Dec 14, 2011 at 05:42:40PM +0100, simozack wrote:

Il 14 dicembre 2011 16:14, pac  ha scritto:

Un'azienda mi dovrebbe mandare un file di testo con una lunga serie di
campi tutti a larghezza fissa e predeterminata

Python è formidabile in questi casi.

On Wed, Dec 14, 2011 at 05:53:07PM +0100,giuse...@iclam.191.it  wrote:

io uso un'utility in perl per mettere i separatori


zless /usr/share/doc/sed/sedfaq.txt.gz
cercare fixed-length

grazie!

stavo provandolo su dpkg -l > installati.txt
sed 's/^\(.\{4\}\)\(.\{37\}\)\(.\{27\}\)/\1\;\2\;\3\;/' installati.txt
e funziona correttamente mettendo i ; ai primi tre campi,

per curiosita' ho provato anche:
awk 'BEGIN{FIELDWIDTHS = "4 37 27 1"}; {print $1";"$2";"$3";"}' 
installati.txt

funziona e mi da' i primi tre campi solo se metto un quarto campo.

ciao
Beppe

A questo punto voglio vedere la soluzione in open-cobol.





--
Per REVOCARE l'iscrizione alla lista, inviare un email a 
debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per

problemi inviare un email in INGLESE a listmas...@lists.debian.org

To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4eea131d.4040...@iclam.191.it



Re: OT: Script per elaborare un file di testo

2011-12-15 Thread Davide Prina

On 15/12/2011 16:29, pac wrote:

Il 14 dicembre 2011 19:10, Davide Prina  ha scritto:

On 14/12/2011 16:14, pac wrote:



dovrei importarlo poi in OpenOffice per riordinarlo etc etc



cosa? e per quale motivo?



Perchè c'è un'addetta che deve estrarre dei dati e trascriverne altri,
quali il codice prodotto, la data di scadenza, il prezzo, la famiglia
e il marchio.


ma allora fai tutte le modifiche, ordinamenti, ... al file da linea di 
comando e poi importi in un foglio elettronico.


In questo modo ogni volta che ti arriva un file, esegui lo script e poi 
lo importi già pronto per l'uso senza dover far altro


Ciao
Davide

--
Dizionari: http://linguistico.sourceforge.net/wiki
Perché microsoft continua a compiere azioni illegali?:
http://linguistico.sf.net/wiki/doku.php?id=traduzioni:ms_illegal
GNU/Linux User: 302090: http://counter.li.org
Non autorizzo la memorizzazione del mio indirizzo su outlook


--
Per REVOCARE l'iscrizione alla lista, inviare un email a
debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per
problemi inviare un email in INGLESE a listmas...@lists.debian.org

To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4eea37a3.1060...@gmail.com



Re: OT: Script per elaborare un file di testo

2011-12-15 Thread pac
Il 15 dicembre 2011 19:08, Davide Prina  ha scritto:
> On 15/12/2011 16:29, pac wrote:
>>
>> Il 14 dicembre 2011 19:10, Davide Prina  ha scritto:
>>
>>> On 14/12/2011 16:14, pac wrote:
>
>
 dovrei importarlo poi in OpenOffice per riordinarlo etc etc
>
>
>>> cosa? e per quale motivo?
>
>
>> Perchè c'è un'addetta che deve estrarre dei dati e trascriverne altri,
>> quali il codice prodotto, la data di scadenza, il prezzo, la famiglia
>> e il marchio.
>
>
> ma allora fai tutte le modifiche, ordinamenti, ... al file da linea di
> comando e poi importi in un foglio elettronico.
>
> In questo modo ogni volta che ti arriva un file, esegui lo script e poi lo
> importi già pronto per l'uso senza dover far altro

Infatti era questa l'intenzione, forse mi ero spiegato male.
Script e import.
Il file sarà quotidiano, ma non so come mi arriverà, nel senso che
obbligatoriamente il file deve esser downlodato utilizzando un
applicativo "ftp" creato dall'azienda di software del fornitore che si
deve obbligatoriamente acquistare e debbono obbligatoriamente venir
loro ad installare. La piattaforma di download deve esser
obbligatoriamente windows ed altre condizioni del genere.
Quindi faremo installare su un computer windows 7 questo applicativo,
in questo pc c'è una VirtualBox Debian e quindi condividerò la
cartella e da Debian mi prenderò il file per sistemarlo, poi la
ragazza se lo prenderà in una cartella condivisa oppure glielo
passeremo direttamente per l'import, ma il passare alla ragazza
avrebbe controindicazioni in caso di sua assenza, meglio la cartella
condivisa.
Ciao e grazie mille
pac


--
Per REVOCARE l'iscrizione alla lista, inviare un email a
debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per
problemi inviare un email in INGLESE a listmas...@lists.debian.org

To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/CAHmhrxA3Y1fa=qaux+nurugk-o+jdbtkkgzsr_v_bvhagz5...@mail.gmail.com