Salve a tutti, avrei bisogno di un aiuto per uno scriptino. Non devo
inserirlo in nessun programma, non devo fare nessun programma.
Mi ritrovo un elenco di nomi (indirizzi ecc…) molto grande, solo che
così come me lo ritrovo non è di nessuna utilità. Vorrei dividerlo in
colonne in modo che possafare un copia ed incolla su un foglio di calc e
poterlo ordinare a piacimento.
Non credo che sia molto complicato (per chi lo sa fare) mi date una
mano?
il problema è proprio questo…non ho fatto nulla ( e non credo che
riuscirò a fare nulla)
ad ogni modo l’elenco non è grandissimo. sono un migliaio di righe,
tutte composte così:
n. d’ordine, numero di iscrizione, nome, cognome, indirizzo, città.
tutti divisi da uno spazio vuoto (niente punteggiatura).
Se copio incollo le righe così su calc, non riesco ad ordinarle perchè
risultano tutte sulla prima riga. Qundi senza complicarmi troppo la vita
pensavo di far leggere il file dallo scriptino, individuare il primo
spazio vuoto e “buttare via” tutto quello che c’è dopo e salvare il
tutto su un altro file. ripeto l’operazione modificando lo script
(secondo spazio, terzo spazio ecc…) creandomi così n file. poi con un
semplice copia incolla dovrei riuscire ad incollare ogni file in una
singola colonna.
che ne dite puo’ funzioanre?
quando salvo il file, l’ordine non viene cambiato giusto?
123456 54321 Gian Pippo De Pippettis via del vattelappesca 42 roma
che di spazi ne ha 10, ma senza certezze sul come distribuire i campi
eh gi, se il separatore (lo spazio) nel mezzo dei campi senza
escape dubito si possa fare qualcosa (che poi almeno google docs i txt
separati da spazi mi pare li capisca, quindi penso anche calc)
un altro problema potrebbe essere il doppio nome o se qualcuno ha
inserito la sigla prima del nome es. Dott. Mario R.
esatto
Che ne pensate???
purtroppo, non hai comunque garanzie, neanche usando regole pi
dettagliate:
se un indirizzo dovesse essere: “via della strada interrotta di roma”,
avresti
gi 2 parole chiave sulla quale dovrai prendere qualche decisione (“via”
e
“strada”), pi un doppio nome di citt (“roma” e la vera citt indicata).
ok, non bisogna costruire un algoritmo valido per tutte le situazioni
(anche
future), e probabilmente i contenuti del file di input sono tutti
“standard”,
quindi non occorre preoccuparsi troppo di questi dettagli. per lo terrei
presente
123456 54321 Gian Pippo De Pippettis via del vattelappesca 42 roma
che di spazi ne ha 10, ma senza certezze sul come distribuire i campi
eh gi, se il separatore (lo spazio) nel mezzo dei campi senza
escape dubito si possa fare qualcosa (che poi almeno google docs i txt
separati da spazi mi pare li capisca, quindi penso anche calc)
un altro problema potrebbe essere il doppio nome o se qualcuno ha
inserito la sigla prima del nome es. Dott. Mario R.
pero si potrebbe procedere suddividendo la stringa iniziale in sotto
stringe secondo delle regole
il primo gruppo prende il codice alfanumerico
il secondo prende la porzione di stringa successiva alla prima fino al
inizio di un indirizzo, come logica un indirizzo comincia con una delle
seguenti parole (piazza, via, viale, contrada, strada etc etc)
l’ultima porzione e quella compresa tra il delimitatore di indirizzo e
il fine linea.
cosi sarebbe possibile suddividere l’informazione in modo logico.
inizio di un indirizzo, come logica un indirizzo comincia con una delle
gi 2 parole chiave sulla quale dovrai prendere qualche decisione (“via” e
“strada”), pi un doppio nome di citt (“roma” e la vera citt indicata).
ok, non bisogna costruire un algoritmo valido per tutte le situazioni (anche
future), e probabilmente i contenuti del file di input sono tutti “standard”,
quindi non occorre preoccuparsi troppo di questi dettagli. per lo terrei
presente
A.
pensandoci poi ci sarebbe comunque un altro problema come ad
esempio"213213 132131 Nino Strada, via dei mille Roma" quando nel
cognome sono presenti le parole che vanno a delimitare l’indirizzo :S
Mmmmh secondo me se non esiste alcun vero separatore di campo non puoi
decidere con un software quando sei su un campo nuovo e quando sei
all’interno di una stringa complessa.
Se posso dire la mia una soluzione potrebbe essere fare uno script che
divide i record tra quelli facilmente processabili e querlli che
richiedono
controllo, esempio
12345 mario rossi via matteotti 1
si decide che si prendono come delimitatori il primo ed il terzo spazio
per gli altri sar necessario fare uno script che permetta l’editing in
modo
da pilotare l’acquisizione.
Mmmmh secondo me se non esiste alcun vero separatore di campo non puoi
decidere con un software quando sei su un campo nuovo e quando sei
all’interno di una stringa complessa.
Non è che magari i campi iniziano ad una posizione fissa, ad esempio gli
indirizzi iniziano tutti al carattere 40?
E’ strano infatti avere un file con campi senza separatori che non sia a
posizione fissa, perché come hanno già fatto notare gli altri non c’è
modo di riuscire ad estrarre i dati. L’unica possibilità è che sia stato
prodotto male, nel qual caso si deve ritornare all’origine dei dati ed
esportarli nel modo corretto.
L’alternativa è far passare a mano tutti i record e sistemarli. Non è
una cosa così pazzesca perché per esperienza spesso si trovano un po’ di
somiglianze tra i record che permettono di automatizzare in parte il
lavoro e ridurlo da qualche giorno a qualche ora. Però bisogna avere una
certa manualità nello scrivere script, altrimenti ci si mette troppo
tempo.
Paolo
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.