Newsgroup: it.comp.macintosh
Titolo: [OT] Inserire CR+LF

allora, ho un grosso file di testo con un unica immensa riga.
dovrei limitare la lunghezza della riga, ad esempio al 1900centesimo
inserire un a capo e quindi creare dei "record" di massimo 1900
caratteri.
forse basta anche inserire solo CR o LF, insomma, in modo che sia
visibile anche con notepad il risultato del lavoro.
sono ben accettate soluzioni su qualsiasi piattaforma :)
grazie,
Ale.

 sono ben accettate soluzioni su qualsiasi piattaforma :)
Ma usare un editor che semplicemente faccia il wrap del testo?
Comunque posso/puoi scrivere uno script in ruby o in python o puoi
scrivere uno script in perl per farlo. Oppure puoi usare
BBEdit/TextWrangler.
Ma non capisco il concetto del wrap a caso.
-- 
Uccidete i filosofi e tenetevi riso e bacchette per voi.

 Ma non capisco il concetto del wrap a caso.
probabilmente poi il file risultante dall'operazione di wrap verrà letto
da qualcosa e salvato in un db credo.
grazie.

 cygwin e linux.
ruby -e "File.open(ARGV[0]) { |aFile|  puts aFile.read(ARGV[1].to_i)
while not aFile.eof? }" nome_file numero_colonne


 while not aFile.eof? }" nome_file numero_colonne
Va tutto sulla stessa linea.


 Va tutto sulla stessa linea.
grazie!

 ruby
Fighetto sto ruby: peccato che il man sia molto risicato pero' ho
trovato (grazie google!) dei manuali fatti proprio bene (in inglese) su
http://ruby-doc.org/
EmJey
-- 
Non prendere la vita troppo sul serio... non ne uscirai mai vivo
http://www.joram.it/servizi/consulente.htm

 
http://ruby-doc.org/
C'è anche un libro completo, anche se vecchiotto. Proprio bello.
Comunque il meglio viene quando guardi i tutorials con Rails. Sorprendente.
-- 
USB Priest sfor only 10$

 Va tutto sulla stessa linea.
ho ancora una richiesta...
è possibile avere tutte le righe della stessa lunghezza?
praticamente l'ultima riga non è dello stesso numero di caratteri delle 
precedenti.
bisognerebbe fare una sorta di blank filling per raggiungere il numero 
massimo di caratteri della riga...
comunque funziona perfettamente.
interessante questo ruby :)
grazie ancora!

 interessante questo ruby :)
In python avresti fatto la stessa cosa con lo stesso (nessuno) numero di
difficoltà.


>while not aFile.eof? }" nome_file numero_colonne
potrebbe diventare, in Python, parecchie righe:
import sys
f = open(sys.argv[1])
nc = int(sys.argv[2])
while True:
    d = f.read(nc)
    if not d: break
    print d
Si puo` compattare un poco, ma a mio parere e` meglio non farlo, e
comunque non credo che sia possibile ficcare tutto su di un'unica riga.
Difficolta`, nessuna, ma Python preferisce "dare respiro" al codice.
"Sparse is better than dense", e` uno dei principi dello Zen di Python.
Mi sono appena beccato un giusto rimbrotto (da uno dei senior engineer
che riportano direttamente a me, tra l'altro, persona fantastica) in
sede di code-review (obbligatoria a Google per TUTTO il codice, anche se
lo scrive Superpippo in persona!-), per avere scritto...:
d = [(w[-1],w[-2]) for l in f for w in (l.split(),) if w[-3]=='MRK']
per raccogliere (come coppie di stringhe) in una lista le ultime due
parole di ogni riga del file f la cui terzultima parola e` 'MRK'.
Rimbrotto sacrosanto, perche` se Google volesse avere nella sua codebase
codice cosi`, "benedirebbe" il Perl, o magari il Ruby, non Python come
invece fa!-).  Ho immediatamente fatto ammenda e riscritto questa
sciocca monoriga come:
d = []
for l in f:
    w = l.split()
    if w[-3] == 'MRK': d.append((w[-1],w[-2]))
e cosi` ho passato la code review.  A questo serve la code review, e
sono entusiasta del discorso che a Google e` SEMPRE obbligatoria: a
volte uno programma di gran fretta per venire incontro a qualche
emergenza (...'sta roba l'ho aggeggiata, insieme a non poca altra,
lavorando da casa in VPN nel corso del weekend...!-), ma il codice che
entra a far parte della codebase DEVE nondimeno essere pulito, chiaro,
stilisticamente uniforme, manutenibile per i prossimi N anni a venire, e
il lavoro dei code reviewer (compito che, a turno, copriamo tutti) e`
anche di garantire queste indispensabili caratteristiche.  (Altra cosa
che adoro qui a Google: in fase di code review, se un pezzo di codice
scioccamente troppo compatto lo ha scritto l'uber technical lead, ma
anche se lo avesse scritto Guido van Rossum, o anche Eric, o Larry, o
Sergey, conta sega -- si parla del codice, non del prestigio o
dell'autorita` delle persone, e il compito del technical reviewer e` di
garantire che tutto quello che entra nella codebase e` bello pulito).
((NB: cross-post a it.comp.lang.python e followup impostato ivi)).
Alex