- Home
- Categorie
- Coding e Sistemistica
- PHP
- leggere un file con tracciato record
-
leggere un file con tracciato record
Ciao!
Vi scrivo dopo parecchio tempo, anche se vi ho seguito ;), ma oggi proprio non mi viene la soluzione giusta.
Vorrei chiedervi come leggere un file txt che contiene dei dati e di cui conosco il tracciato record.
Non ho dei limitatori tra i campi, ma ne conosco la lunghezza
Intendo tiponome 8 cognome 7 età 2
.txt
patriziarossoni29
patrizioressoni25Avrei voluto usare fscanf, ma non è giusto... o c'è un modo?
grazie
Pat
-
Cosa intendi per "tracciato record"?
ad ogni modo fscanf è una funzione di C++, qui si parla di PHP ed in genere puoi leggere i file per riga se conosci la struttura (sai che gli spazi sono separatori, per capirci) come se fosse un file CSV, attraverso fgetcsv (l'estensione può esserre anche txt):
<?php
$row = 1;
$handle = fopen("test.csv","r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num campi sulla linea $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data . "<br>\n";
}
}
fclose($handle);
?>In alternativa, leggi una riga alla volta e la suddividi via regex, via split-string e con decine di altri metodi a scelta
-
Ciao Salvatore,
beh in effetti ho letto il file una riga alla volta e ciascuna riga l'ho suddivisa come suggerisci tu.
Mi sembrava una soluzione così complicata e speravo in qualcosa di più semplice visto la lunghezza della riga.
Avevo qualche vago ricordo in cobol! Figurati!Comunque per "tracciato record" intendevo che conoscevo la lunghezza e il tipo di ciascun campo del record.
La funzione fscanf la puoi trovare anche in php:
(PHP 4 >= 4.0.1, PHP 5)
fscanf — Analizza l'input da un file secondo un determinato formato.Grazie per la tua risposta.
Pat
-
Di nulla, grazie a te