OT : Sempre Script

2012-01-17 Thread pac
Ho un file in output con una serie di campi, uno di questo rappresenta la
giacenza dei vari magazzini e per ovvi motivi è sottoposto a somme e
sottrazioni, per qualche misterioso motivo pur essendo numerico mi viene
richiesto allineato a SX sostituendo gli zeri che precedono il valore con
degli spazi,
Esempio

Questi dati

AZPTX25L14   0001020120115008
AZPTX25L15   220120115008
AZPTX25L45   0012320120115008

Debbono esser formattati così

AZPTX25L14   10 20120115008
AZPTX25L15   2   20120115008
AZPTX25L45   123   20120115008

Come posso fare ?


Re: OT : Sempre Script

2012-01-17 Thread dea

> AZPTX25L14   0001020120115008
> AZPTX25L15   220120115008
> AZPTX25L45   0012320120115008
> 
> Debbono esser formattati così
> 
> AZPTX25L14   10 20120115008
> AZPTX25L15   2   20120115008
> AZPTX25L45   123   20120115008
> 
> Come posso fare ?

Pac, per prima cosa bisogna capire la logica.

Nel secondo campo, a parte eliminare gli zeri, come discrimini la divisione
dei due blocchi ? Il terzo campo (p.e. 20120115008 è sempre questo ? E' a
numero fisso di caratteri ?).

Luca


-- 
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/20120117083935.m58...@corep.it



Re: OT : Sempre Script

2012-01-17 Thread Lorenzo Sutton

On 17/01/12 08:33, pac wrote:
Ho un file in output con una serie di campi, uno di questo rappresenta 
la giacenza dei vari magazzini e per ovvi motivi è sottoposto a somme 
e sottrazioni, per qualche misterioso motivo pur essendo numerico mi 
viene richiesto allineato a SX sostituendo gli zeri che precedono il 
valore con degli spazi,

Esempio

Questi dati

AZPTX25L14   0001020120115008
AZPTX25L15   220120115008
AZPTX25L45   0012320120115008

Debbono esser formattati così

AZPTX25L14   10 20120115008
AZPTX25L15   2   20120115008
AZPTX25L45   123   20120115008

Come posso fare ?
In python? (Sempre se ho capito bene la logica e se le stringhe di input 
sono sempre simili a quelle fornite...)


#!/usr/bin/env python
test_strings = [
'AZPTX25L14   0001020120115008',
'AZPTX25L15   220120115008',
'AZPTX25L45   0012320120115008'
]
PARTE_FISSA = '20120115008'
for s in test_strings:
inizio_zeri = s.find('0')
lettere = s[:inizio_zeri]
numeri = s[inizio_zeri:]
indice_pfissa = numeri.find(PARTE_FISSA)
codice = int(numeri[:indice_pfissa])
nuova_stringa = ("%s%d\t%s") % (lettere, codice, PARTE_FISSA)
print nuova_stringa


--
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/4f154bb4.6040...@gmail.com



Re: OT : Sempre Script

2012-01-17 Thread pac
Il giorno 17 gennaio 2012 09:42, dea  ha scritto:

>
> > AZPTX25L14   0001020120115008
> > AZPTX25L15   220120115008
> > AZPTX25L45   0012320120115008
> >
> > Debbono esser formattati così
> >
> > AZPTX25L14   10 20120115008
> > AZPTX25L15   2   20120115008
> > AZPTX25L45   123   20120115008
> >
> > Come posso fare ?
>
> Pac, per prima cosa bisogna capire la logica.
>
> Nel secondo campo, a parte eliminare gli zeri, come discrimini la divisione
> dei due blocchi ? Il terzo campo (p.e. 20120115008 è sempre questo ? E' a
> numero fisso di caratteri ?).
>


>
> Si scusa, sono campi a lunghezza fissa.
1° Campo Codice 3 crt
2° Campo Centro 14 crt
3° Campo Giacenza 21 crt allineata a sx
4° Campo Data  8 crt
5° Campo Sigla  3 crt


>
>
> --
> 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/20120117083935.m58...@corep.it
>
>


Re: OT : Sempre Script

2012-01-17 Thread Lorenzo Sutton

On 17/01/12 09:30, pac wrote:



Il giorno 17 gennaio 2012 09:42, dea > ha scritto:



> AZPTX25L14   0001020120115008
> AZPTX25L15   220120115008
> AZPTX25L45   0012320120115008
>
> Debbono esser formattati così
>
> AZPTX25L14   10 20120115008
> AZPTX25L15   2   20120115008
> AZPTX25L45   123   20120115008
>
> Come posso fare ?

Pac, per prima cosa bisogna capire la logica.

Nel secondo campo, a parte eliminare gli zeri, come discrimini la
divisione
dei due blocchi ? Il terzo campo (p.e. 20120115008 è sempre questo
? E' a
numero fisso di caratteri ?).


Si scusa, sono campi a lunghezza fissa.
1° Campo Codice 3 crt
2° Campo Centro 14 crt
3° Campo Giacenza 21 crt allineata a sx
4° Campo Data  8 crt

Allora lo script in python non funzionerà in generale.

5° Campo Sigla  3 crt



--
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/20120117083935.m58...@corep.it





--
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/4f154f03.6070...@gmail.com



Re: OT : Sempre Script

2012-01-17 Thread pac
Il giorno 17 gennaio 2012 11:35, Lorenzo Sutton
ha scritto:

> On 17/01/12 09:30, pac wrote:
>
>>
>>
>> Il giorno 17 gennaio 2012 09:42, dea mailto:d...@corep.it>>
>> ha scritto:
>>
>>
>>
>>> AZPTX25L14   00010201201150**08
>>> AZPTX25L15   2201201150**08
>>> AZPTX25L45   00123201201150**08
>>>
>>> Debbono esser formattati così
>>>
>>> AZPTX25L14   10 20120115008
>>> AZPTX25L15   2   20120115008
>>> AZPTX25L45   123   20120115008
>>>
>>> Come posso fare ?
>>
>> RISOLTO :
Ho usato una routine COBOL che ho fatto io.
Grazie mille comunque e ciao


Re: OT : Sempre Script

2012-01-17 Thread simozack
Forwardo in lista... Scusami Lorenzo! :)

Il 17 gennaio 2012 11:35, Lorenzo Sutton  ha scritto:
> Allora lo script in python non funzionerà in generale.

Prova questo. Utilizzo: "python nome_script nome_file_in nome_file_out"
---
#!/usr/bin/python

import sys

filename_in = sys.argv[1]
filename_out = sys.argv[2]

fout = open(filename_out, 'w')

for line in open(filename_in, 'r'):
   first_field = test_string[0:2]
   second_field = test_string[2:17]
   third_field = test_string[17:38]
   fourth_field = test_string[38:46]
   fifth_field = test_string[46:]

   length_third = len(third_field)

   new_third_field = str(int(third_field)).ljust(length_third)

   field_list = (first_field, second_field, new_third_field,
 fourth_field, fifth_field)

   fout.write(''.join(field_list))
   fout.write('\n')

fout.close()
---

L'ho scritto così più per chiarezza 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/cafnaeg+h_v5je54jcnqt1sp09qmxshvl5zbyy_pwmgxedfz...@mail.gmail.com



Re: OT : Sempre Script

2012-01-17 Thread Alessandro T.

Il 17/01/2012 10:30, pac ha scritto:



> AZPTX25L14   0001020120115008
> AZPTX25L15   220120115008
> AZPTX25L45   0012320120115008
>
> Debbono esser formattati così
>
> AZPTX25L14   10 20120115008
> AZPTX25L15   2   20120115008
> AZPTX25L45   123   20120115008
>
> Come posso fare ?
Si scusa, sono campi a lunghezza fissa.
1° Campo Codice 3 crt
2° Campo Centro 14 crt
3° Campo Giacenza 21 crt allineata a sx
4° Campo Data  8 crt
5° Campo Sigla  3 crt


Se ho ben capito vuoi allineare la terza colonna a sinistra togliendo il 
padding?

`sed -E ':a;s/(.{17})0(.{20})(.{11})$/\1\2 \3/;ta'`

--
Alessandro T.

R: Perché leggiamo dall'alto al basso e da sinistra a destra.
D: Perché dovrei iniziare la risposta all'e-mail dopo il testo citato?


--
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/4f155569.6080...@yahoo.it



Re: OT : Sempre Script

2012-01-19 Thread s@mba
On 01/17/2012 11:35 AM, Lorenzo Sutton wrote:
> Allora lo script in python non funzionerà in generale.
la cosa più bella nelle lista linux è leggere (parafrasando):
"Così Non si può fare"
per poi vedere dopo due o più esempi di come è possibile risolvere il
problema proprio in quel modo

:P
-- 
ɐqɯ@s


-- 
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/4f1865e0.3080...@autistici.org



Re: OT : Sempre Script

2012-01-19 Thread Dario

Il 19/01/2012 19:50, s@mba ha scritto:

On 01/17/2012 11:35 AM, Lorenzo Sutton wrote:

Allora lo script in python non funzionerà in generale.

la cosa più bella nelle lista linux è leggere (parafrasando):
"Così Non si può fare"
per poi vedere dopo due o più esempi di come è possibile risolvere il
problema proprio in quel modo

:P


Molte volte partiamo dal presupposto che ciò che sappiamo fare
sia l'unico modo per poter fare.

Ma grazie alla condivisione di idee in lista,
impariamo ad evitare gli "assolutismi",
e l'umiltà che permette di crescere :-)

Dario


--
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/4f188378.9020...@gmail.com



Re: OT : Sempre Script

2012-01-19 Thread simozack
Il 19 gennaio 2012 21:56, Dario  ha scritto:
> Ma grazie alla condivisione di idee in lista,
> impariamo ad evitare gli "assolutismi",
> e l'umiltà che permette di crescere :-)

Ma, soprattutto, con Python nulla è impossibile... :)

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/CAFnaeGLze=pH7SUhnB98VkvDK+GH29GCwak5=smxoaap5su...@mail.gmail.com



Re: OT : Sempre Script

2012-01-23 Thread Lorenzo Sutton

On 20/01/2012 08:24, simozack wrote:

Il 19 gennaio 2012 21:56, Dario  ha scritto:

Ma grazie alla condivisione di idee in lista,
impariamo ad evitare gli "assolutismi",
e l'umiltà che permette di crescere :-)


Ma, soprattutto, con Python nulla è impossibile... :)


+1


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/4f1d4496.1080...@gmail.com