Andare a capo in un file di testo dopo determinata frase

  • Creatore Discussione Creatore Discussione Bigman
  • Data di inizio Data di inizio

Bigman

Nuovo Utente
17 Apr 2016
3
0
0
Ciao a tutti

sto facendo un programmino in php per l'ufficio e mi sto scontrando con un problemino che mi fa perdere molto tempo.

In pratica io devo leggere un file di testo, cercare una frase e andare a capo dopo quella frase.

Vi posto una riga di esempio del file in oggetto:

codice:

Codice:
20160104|000001|0067|A|STD|D16#       001|003|nessun record presente20160105|000001|0067|A|STD|D16#       001|003|nessun record presente20160107|000001|0067|A|STD|D16#       001|003|nessun record presente20160108|000001|0067|A|STD|D16#       001|003|nessun record presente20160111|000001|0067|A|STD|D16#       001|003|nessun record presente20160112|000001|0067|A|STD|D16#       001|003|nessun record presente20160113|000001|0067|A|STD|D16#       001|003|nessun record presente20160114|000001|0067|A|STD|D16#       001|003|nessun record presente20160115|000001|0067|A|STD|D16#       001|003|nessun record presente20160118|000001|0067|A|STD|D16#       001|003|nessun record presente20160119|000001|0108|A|T01|A02BD11|002|T|003|Pantoprazolo, amoxicillina, claritromicina e metronidazolo|004|

praticamente quello che dovrei fare è leggere il file riga per riga e quando trovo la frase "nessun record presente" mandare a capo la riga.

Quindi la riga

20160104|000001|0067|A|STD|D16# 001|003|nessun record presente20160105|000001|0067|A|STD|D16# 001|003|nessun record presente

deve diventare

20160104|000001|0067|A|STD|D16# 001|003|nessun record presente
20160105|000001|0067|A|STD|D16# 001|003|nessun record presente

e così via per tutte le righe.

Ovviamente il file è composto da molte righe e non tutte si devono mandare a capo perchè non contengono quella frase.

Scusate se rompo, spero di essermi spiegato bene.

Grazie a tutti
Marco
 
Ciao Bigman,
se ho ben capito quello che intendi fare, per mandare a capo una riga devi inserire un <br> o usare la funzione PREG_REPLACE, sostituendo 'nessun record presente' con 'nessun record presente<br>'. Ho provato con la prima riga d'esempio che hai postato e a me funziona.


PHP:
<?php

$riga = '20160104|000001|0067|A|STD|D16#       001|003|nessun record presente20160105|000001|0067|A|STD|D16#       001|003|nessun record presente20160107|000001|0067|A|STD|D16#       001|003|nessun record presente20160108|000001|0067|A|STD|D16#       001|003|nessun record prese:byebye:nte20160111|000001|0067|A|STD|D16#       001|003|nessun record presente20160112|000001|0067|A|STD|D16#       001|003|nessun record presente20160113|000001|0067|A|STD|D16#       001|003|nessun record presente20160114|000001|0067|A|STD|D16#       001|003|nessun record presente20160115|000001|0067|A|STD|D16#       001|003|nessun record presente20160118|000001|0067|A|STD|D16#       001|003|nessun record presente20160119|000001|0108|A|T01|A02BD11|002|T|003|Pantoprazolo, amoxicillina, claritromicina e metronidazolo|004|';
echo preg_replace('/nessun record presente/','nessun record presente<br>',$riga);


?>0


Sempre che sia quello che intendevi. Ciao:byebye::byebye:


Zorro
 
Ciao Bigman,
se ho ben capito quello che intendi fare, per mandare a capo una riga devi inserire un <br> o usare la funzione PREG_REPLACE, sostituendo 'nessun record presente' con 'nessun record presente<br>'. Ho provato con la prima riga d'esempio che hai postato e a me funziona.

Sempre che sia quello che intendevi. Ciao:byebye::byebye:

Zorro

Non so se è quello che serve a me, io devo leggere un file di testo che contiene oltre a righe corrette anche le righe che ho segnalato, quindi penso di dover leggere riga per riga, mandare a capo quelle che ho segnalato e poi riscivere il tutto sempre nel file.

E' possibile quello che chiedo?
In visual basic l'ho fatto e funziona correttamente ma ora devo ribaltare l'applicativo via web.

Grazie

Marco
 

Discussioni simili