PDA

View Full Version : Formattazione file di testo


Hideryl
16-02-2005, 10:51
Ciao a tutti, non sapevo veramente dove mettere questo thread. Ho pensato in programmazione perchè dovrei lavorare con delle stringhe ecc. Ma veniamo al dunque. Ho questo piccolo ma bastardo grattacapo. Ho un file di testo in questo formato:

1[TAB]Domanda[TAB]Risposta_A[TAB]Risposta_B[TAB]Risposta_C[TAB]Risposta_D[TAB]B
2[TAB]Domanda[TAB]Risposta_A[TAB]Risposta_B[TAB]Risposta_C[TAB]Risposta_D[TAB]D

Il [TAB] sta a significare che c'è un segno di tabulazione, mentre l'ultima lettere è la risposta giusta.

Io dovrei metterlo in questo formato in modo che possa importarlo in un programma apposito:

1. Domanda

A. Risposta_A
B. Risposta_B
C. Risposta_C
D. Risposta_D

Answer: B

2. Domanda

A. Risposta_A
B. Risposta_B
C. Risposta_C
D. Risposta_D

Answer: D


Volendo ho anche tutto in un file excel, cioè: nella colonna A il numero della domanda, nella colonna B il testo della domanda, nella C la prima risposta, ecc ecc

Chi riesce a suggerirmi qualcosa?

f@bio80
16-02-2005, 11:03
premessa:
non conoscendo excel non sò se già da lì è possibile esportare i dati in un formato che gli definisci tu...accertati di questa cosa, se l'unica soluzione è scrivere un programmino, beh saranno sì e no 10 righe di codice ;)

Hideryl
16-02-2005, 11:12
Originariamente inviato da f@bio80
premessa:
non conoscendo excel non sò se già da lì è possibile esportare i dati in un formato che gli definisci tu...accertati di questa cosa, se l'unica soluzione è scrivere un programmino, beh saranno sì e no 10 righe di codice ;)
Probabilmente con excel è possibile, però non saprei come perchè neanch'io lo conosco bene. L'esportazione in excel su file di testo è con tabulazione (come l'ho fatta io) o senza. Non ci sono altre opzioni. Altrimenti avevo pensato che si poteva fare in una casella di excel una funzione del genere: scrivi A1 come testo, scrivi un ".", Scrivi B1, vai a capo, ecc.
Forse così sarebbe il metodo più semplice, solo che non ho la minima idea si come si possa fare. :muro: :D

f@bio80
16-02-2005, 13:59
ehehe credo proprio di no!

cmq se hai dimestichezza con visual basic:

1) dichiara un oggetto textstream e carica il file di testo
2) fai un ciclo sulle righe del file (do ... while not atEndOfStream)
3) di ogni riga del file fai una split
4) a questo punto con il vettore risultante scrivi il nuovo file come pare a te

ciao ;)

Hideryl
16-02-2005, 15:14
Visual basic non ce l'ho. Grazie comunque per la risposta :)

Ziosilvio
16-02-2005, 23:01
Sembra il classico problema che si risolve con uno script Perl (o Python).
Sostanzialmente, tu devi leggere una riga alla volta dal file e immagazzinarla in una stringa; poi spezzare la stringa nei suoi elementi, basandoti su quali sono i caratteri che separano i campi (nel tuo caso, il tab); infine, produrre una stampa basata sulle porzioni di testo che hai ricavato poco fa.
Forse te la puoi cavare anche in C, ma mi sa che scanf non basta, e devi usare strtok.

Blackat
16-02-2005, 23:06
Certo che si può fare!!!

1. Apri Excel, seleziona dal menù "File" la voce "Apri...", seleziona come tipo di file "Tutti i file" e apri il tuo file.

2. Si aprirà una finestra con titolo "Impostazione guidata testo".

3. Seleziona come formato dei dati "Delimitati" e vai avanti.

4. Infine seleziona il delimitatore "Tabulazione" e vai avanti.

5. Tutti i dati verranno importati nel foglio Excel riga per riga.

Ti resta solo che organizzarti le varie domande in colonne.

Hideryl
17-02-2005, 22:09
Blackat mi sa che mi son spiegato male :) non devo importare il file di testo in excel. Io ho questi dati su excel che ho esportato su un file di testo. E dovrei importare questi dati su un altro programma che però accetta solamente file di testo in un certo formato (quello che ho scritto all'inizio).
Per quanto riguarda il consiglio di Ziosilvio posso provare ma non sono sicuro di riuscire con Perl, anche e dovrebbe essere una cavolata in verità. Comunque vi farò sapere, se intanto a qualcuno viene in mente una soluzione più semplice ed immediata, mi faccia sapere. Ciao e grazie :)

Hideryl
17-02-2005, 22:46
Ho risolto :idea: :idea: :idea:
E' bastato aggiungere in excel altre colonne di fianco a quelle delle domande e delle risposte e copiarci dentro la stessa scritta in tutte le righe. Per esempio ci scrivi "domanda.". Poi quando vai a esportare in un file di testo e con un editor di testo fai una sostituzione di "domanda." con ".". E' un buon metodo per convertire i file di excel senza perderci troppo tempo. :D
Grazie a tutti per i consigli ;)