Verifica tracciato files

Ciao a tutti. Ho la necessità di verificare se un file di testo segue una certa formattazione oppure meno. In pratica, ho una serie di files che contengono dati formattati in questo modo:

- Campo 1 : testo (20)

- Campo 2 : testo (10)

- Separatore : tabulazione

Devo verificare che ogni riga del file abbia questa formattazione.

Esempio:

aaaaaaaaaaaaaaaaaaaa   bbbbbbbbbb

aaaaaaaaaaaaaaaaaaaa   bbbbbbbbbb

aaaaaaaaaaaaaaaaaaa   bbbbbbbbbb

aaaaaaaaaaaaaaaaaaaa   bbbbbbbbb

Le righe 3 e 4 dovranno causare un errore.

Avete qualche suggerimento su che strada seguire?

Grazie

inviato 10 anni fa
actarus1981
X 0 X

Di strade ce ne sono diverse, dipende dall'approccio che vuoi dare alla cosa.

Ad esempio:

1 - Leggi la riga, controlli che sia di 30 caratteri+tabulazione

2 - Leggi la riga, splitti al tab, se ottieni un array di 2 elementi ne controlli la lunghezza (20 e 10) se è un solo elemento non c'era il tab.

risposto 10 anni fa
LonelyWolf
X 0 X

Non so se ho capito bene:

$error = false;

$riga = fgets(....);

$exp = explode(" ",$riga);

if(strlen($exp[0]) != 20 || strlen($exp[1]) != 10)

 $error = true;

e poi controlli la variabile $error

Spero di aver capito ciò che ti serviva...

ciao

Lore

scusa LonelyWolf hai risp tu mentre stavo scrivendo...sorry...

risposto 10 anni fa
Lore
Lore
1
X 0 X

Figurati Lore!

Ma non credo che " " nello split sia corretto, il separatore è la tabulazione non lo spazio.

risposto 10 anni fa
LonelyWolf
X 0 X

Perfetto, grazie per le idee!

Ciao

risposto 10 anni fa
actarus1981
X 0 X

Figurati Lore!

Ma non credo che " " nello split sia corretto, il separatore è la tabulazione non lo spazio.

con il codice che ho messo sopra volevo solo fare un esempio... O0

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

Hai ragione anche tu, ma in questi mesi sto sistemando un accrocchio intranet (che col tempo è diventato una cosa gigantesca, inglobando sempre più funzioni e nuovi accrocchi)  e queste cose che sembrano piccoli dettagli incasinano tutto! :D

risposto 10 anni fa
LonelyWolf
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda