Διαγραφή κενού σε τεχτ αρχείο

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
zeppos
Δημοσιεύσεις: 431
Εγγραφή: 26 Μαρ 2006 10:43
Τοποθεσία: Kyklades
Επικοινωνία:

Διαγραφή κενού σε τεχτ αρχείο

Δημοσίευση από zeppos » 09 Απρ 2006 14:48

Καλημέρα σας
Εχω ένα πρόβλημα και θα ήθελα να σας παρακαλέσω να μου πείτε αν υπάρχει λύση να μην ψάχνω άδικα.
Εχω βρεί ένα αρχείο txt με ένα μεγάλο κατάλογο 9000 σειρών. Κάθε σειρά έχει 2 λέξεις με ένα μεγάλο κενό ανάμεσά τους. Αυτό πρέπει οποσδήποτε να το διαμορφώσω σε ένα αρχείο txt που θα έχει τις ίδιες σειρές με τη διαφορά οτι ανάμεσα στις 2 λέξεις θα υπάρχει ένα διαχωριστικό | και ΚΑΘΟΛΟΥ κενά bits ώστε να το διαβάζει χωριστά ένα πρόγραμμα λεξικού.
Φυσικά με το χέρι είναι ..γολγοθάς..Εχω καταφέρει έως τώρα να μεταγράφω σε άλλο αρχείο όλες τις σειρές με το διαχωριστικό ανάμεσα στις 2 λέξεις, αλλά δεν μπορώ να εξαλείφω τα κενά. Χρησιμοποιώ τo παρακάτω:
$fp = file($file);
foreach($fp as $element) {
$element = trim($element);
$row = explode("\n", $element);
$max=13;
$result1= substr($row[0],0,$max );
$result= strstr($row[0],' ')."<br>";
print $result1. "|" . $result;

για δω αν το γράφει σωστά και μετά με το
$line .="$result1|$result";
fwrite($file,$line)
τα μεταγράφει όλα σε άλλο txt αρχείο αλλά όπως είπα διατηρεί τα κενά όπως στο αρχικό αρχείο, δηλ. στη σειρά πχ: αγγίζω touch το κάνει:
αγγίζω | touch
ενώ εγώ ψάχνω λύση για μεταγραφή χωρίς καθόλου κενά δηλ.
αγγίζω|touch
Όπως είπα θα ήθελα να ξέρω αν υπάρχει λύση παρακαλώ.. Γίνεται;

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Διαγραφή κενού σε τεχτ αρχείο

Δημοσίευση από cpulse » 09 Απρ 2006 15:52

Ο κώδικας σου με μπέρδεψε λίγο γιατί αντί να ψάχνει για κενό κόβει την πρώτη λέξη μετά από 13 χαρακτήρες.

Πάντως αν το κενό είναι με απλά spaces και το μόνο που θέλεις είναι να τα αντικαταστήσεις μπορείς να χρησιμοποιήσεις ένα απλό regular expression. Πχ..

Κώδικας: Επιλογή όλων

$str = 'abc   def';

echo preg_replace&#40;'/&#91; &#93;+/', '|', $str&#41;;
Επίσης στον κώδικά σου το $row = explode("\n", $element); είναι πλεονασμός γιατί η εντολή file() θα θεωρήσει το \n ώς διαχωριστικό γραμμής οπότε ποτέ δεν θα το βρείς στα στοιχεία του $fp

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Διαγραφή κενού σε τεχτ αρχείο

Δημοσίευση από cpulse » 09 Απρ 2006 15:54

Και αν έχεις και κανένα editor (πχ EditPlus) που να υποστηρίζει replacements με regular expressions τότε δεν είναι ανάγκη να φτιάξεις καν πρόγραμμα :)

Απλά χρησιμοποίησε το regular expression που σου έγραψα.

zeppos
Δημοσιεύσεις: 431
Εγγραφή: 26 Μαρ 2006 10:43
Τοποθεσία: Kyklades
Επικοινωνία:

Διαγραφή κενού σε τεχτ αρχείο

Δημοσίευση από zeppos » 09 Απρ 2006 16:29

Ευχαριστώ πολύ για την γρήγορη απάντηση που μου έδωσε τη λύση. Αντικατέστησα στον κώδικα την πρότασή σου και τα μετέγραψε σωστά εξαλείφοντας τα κενά.
Δεν ξέρω αλλά όταν δεν έγραφα το $row=explode() ..απλά μου επέστρεφε μόνο array
Τώρα είναι:
$str = $result1. $result;
$line .= preg_replace('/[ ]+/', '|', $str);
fwrite($file,$line);

Ευχαριστώ και πάλι!
Εικόνα

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Διαγραφή κενού σε τεχτ αρχείο

Δημοσίευση από cpulse » 09 Απρ 2006 16:37

Δεν υπάρχει λόγος να υποχρεώνεσαι...

να σου δώσω ένα λογαριασμό στην PayPal να μου βάλεις 750 euro;; :D

zeppos
Δημοσιεύσεις: 431
Εγγραφή: 26 Μαρ 2006 10:43
Τοποθεσία: Kyklades
Επικοινωνία:

Διαγραφή κενού σε τεχτ αρχείο

Δημοσίευση από zeppos » 10 Απρ 2006 08:40

Εντάξει..δεν υπάρχει λόγος για υποχρέωση, αλλά ένα (διπλό) ευχαριστώ πάντα πιστεύω οτι αξίζει σε όσους απαντάνε και τουλάχιστον προσπαθούν να βοηθήσουν ερασιτέχνες ψιλοάσχετους σαν και μένα..Αλλωστε και ο τίτλος αυτής της σελίδας παραπέμπει και σε ερασιτέχνες. Τα λέω αυτά γιατί σε ορισμένα ποστ (ευτυχώς ορισμένα) διακρίνω μια αδικαιολόγητη αλαζονία! Αυτά..
Εικόνα

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες