[Gulli] C-onoscete il C?

Alessandro Marzini alessandro.marzini@gmail.com
Dom 16 Giu 2013 17:28:55 CEST


Allora, ringrazio intanto Fabrizio che mi ha messo sulla strada facendomi
capire i limiti di scanf, ringrazio Daniele che mi ha ricordato che esiste
string.h e che ha postato del codice corto e spietato ma che funziona :)
Anche per esercitarmi un po' ho scritto un codice alternativo, sempre
usando string.h e la funziona strtok visto che leggendo qui:
http://www.diee.unica.it/~armano/LT1/pdf/LT1-8b.pdf
sembrava proprio quello che cercavo in quanto mi faceva già lei la funzione
di parsing isolandomi i valori secondo un determinato separatore di campo:

Il codice è qui:

http://codepad.org/pQ4ASVah

Ho usato una struttura dati giusti per riservarmi di utilizzare
specialmente in fase di output i vari campi in sequenza diversa. Per il
resto ho usato come indicato da Fabrizio e Daniele una fgets per leggere
riva per riga, poi mi sono avventurato con una sscanf() controllando pero'
quanti parametri venivano letti, ovvero se oltre al prefisso madre cprefix
(country prefix) c'era anche dell'altro, quindi con carpiato semplice ho
isolato gli eventuali sottoprefissi con la funzione strtok() e memorizzati
nell'array prefix[] della struct rate.
A quel punto ho tutti i valori bellini e profumati memorizzati nella
struttura pronti ad essere cucinati a piacimento.

Confesso che seguire il funzionamento delle funzioni, i carpiati del
puntantore al buffer, etc brucia un po' di neuroni al secondo, ma ne vale
la pena.

Sarebbe interessante fare un concorsino tipo vince chi scrive il codice piu
corto :)
Anubis te la senti di fare un bel programma multithread parallelo con
avvitamento sulla cache? :D

Appena ho tempo provo anche gli script di Sandro e Lorenzo (scrivetemi
sempre del codice completo :))

C-Saluti!


Il giorno 14 giugno 2013 00:46, lorenzo vangi <lorenzovangi@gmail.com> ha
scritto:

> awk funziona come un vero e proprio operatore di stringhe.
> #!/usr/bin/awk -f
> BEGIN{FS=";"} #cosi ho impostato come separatore ;
> {print $5,$6} #prendo le colonne corrispondenti ai file, ognuno le
> gestisce come vuole
> END{print "ho finito"}
>
> adesso possiamo togliere gli spazi come ognuno preferisce anche con un
> semplice comando tr.
> spero di esser stato d'aiuto.
> sono ben accette correzzioni e/o discussioni in merito.
>
>
>
> Il giorno 13 giugno 2013 23:32, <dominusmentis@gmail.com> ha scritto:
>
> Il 12/06/2013 23:28, Sandro Fabbro ha scritto:
>> > questa è una bozza scritta velocemente in bash manca la parte che ti
>> > compone il secondo caso se riesco faccio ... se qualche buona anima
>> > vuole scrivere il secondo ciclo ben venga ;-)
>> >
>> > #!/bin/bash
>> > [...]
>>
>> Grazie per l'utile esempio di programmazione bash con ciclo if, devo
>> studiarmelo bene ed imparare qualcosa.
>>
>> Piacevoli i contributi di chi si limita a spiegare come un linguaggio
>> sia più opportuno che un altro, ma è sporcandosi le mani scrivendo e
>> presentando del codice che si permette agli altri di risolvere i problemi!
>>
>> Carlo
>> --
>> Mailing list info: http://lists.linux.it/listinfo/gulli
>> Pagina web del GULLI: www.livorno.linux.it
>>
>
>
>
> --
> Lorenzo Vangi
>
> --
> Mailing list info: http://lists.linux.it/listinfo/gulli
> Pagina web del GULLI: www.livorno.linux.it
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.linux.it/pipermail/gulli/attachments/20130616/d0ea86a4/attachment.html>


Maggiori informazioni sulla lista Gulli