einen Absatz aus einen txt Datei löschen

Alles, was PHP betrifft, kann hier besprochen werden.

einen Absatz aus einen txt Datei löschen

Postby Oepfel » 16. January 2009 10:19

Hallo erstmal,

habe folgendes problem:

Ich habe eine txt Datei in der Daten blockweise (also in mehreren Zeilen) geschrieben werden. Markiert sind die immmer am Anfang und am Ende des Blocks mit: Anfang: #001A und am Ende #001B

Nun suche ich nach einer Möglichkeit einen bestimmten Block zu löschen.

Ich habe es zwar schon mit einigen Versuchen geschafft, eine zeile zu löschen aber gleich nen ganzen Block ?

Dank im Voraus für jede Hilfe

mfg
Oepfel
User avatar
Oepfel
 
Posts: 78
Joined: 10. October 2006 23:16
Location: Wendelstein

Re: einen Absatz aus einen txt Datei löschen

Postby Nobbie » 16. January 2009 15:42

>Nun suche ich nach einer Möglichkeit einen bestimmten Block zu löschen.

Und wie unterscheidet sich dieser bestimmte Block von den anderen?
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: einen Absatz aus einen txt Datei löschen

Postby Oepfel » 16. January 2009 20:17

Blockanfang 1: #001A
Blockende 1: #001B
Blockanfang 2: #002A
Blockende 2 : #002B

usw.
Oepfel
User avatar
Oepfel
 
Posts: 78
Joined: 10. October 2006 23:16
Location: Wendelstein

Re: einen Absatz aus einen txt Datei löschen

Postby Nobbie » 16. January 2009 22:01

Und was hast Du bisher versucht, um nun einen bestimmten Block zu "löschen"?
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: einen Absatz aus einen txt Datei löschen

Postby Wiedmann » 17. January 2009 07:27

Ich habe eine txt Datei in der Daten blockweise (also in mehreren Zeilen) geschrieben werden. Markiert sind die immmer am Anfang und am Ende des Blocks mit: Anfang: #001A und am Ende #001B

Nun suche ich nach einer Möglichkeit einen bestimmten Block zu löschen.

preg_replace() würde sich da anbieten.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: einen Absatz aus einen txt Datei löschen

Postby Oepfel » 17. January 2009 12:17

Hallo,

mit preg_replace() habe ich auch schon experimentiert, jedoch hat das nicht über mehrere Zeilen funktioniert.

Wenn dann müsste das sowas sein wie: $löschen=(von #002A bis #002B);

Aber ist auch nicht mehr so dringend, da ich das zur not auch hintenrum machen könnte. Ist dann zwar umständlicher und aufwendiger aber machbar.
Denke dass es für sowas keine echte Lösung gibt. Zumindest habe ich in den weiten des www nirgends was gefunden.

Danke trotzdem.

mfg
Oepfel
User avatar
Oepfel
 
Posts: 78
Joined: 10. October 2006 23:16
Location: Wendelstein

Re: einen Absatz aus einen txt Datei löschen

Postby Xardas der Dunkle » 17. January 2009 16:11

Bei mir funktioniert es mit preg_replace problemlos ...
Code: Select all
<?php
$foo 
=<<<TXT
#001A
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
#001B

#002A
Nulla facilisi. Curabitur dictum odio et ligula. 
#002B

#003A
Aliquam porta arcu vitae ante. Vivamus gravida. In ut nisl. Aenean gravida magna non neque. 
#003B

#004A
Sed vel magna. Morbi leo nibh, tempus non, cursus imperdiet, blandit ut, eros. Sed in lacus. 
#004B

#005A
Nulla quam enim, tincidunt ut, ullamcorper sollicitudin, elementum commodo, lorem. Suspendisse dapibus dignissim leo. Nam dictum leo. 
#005B
TXT;

function deleteBlock($nr) {
    global $foo;

    return preg_replace('~#' . sprintf('%03d', $nr) . 'A.*#' . sprintf('%03d', $nr) . 'B~s', '', $foo);
}

echo '<pre>', deleteBlock(2), '</pre>';
 


Aber wieso benutzt du nicht einfach eine Datenbank?
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www

Re: einen Absatz aus einen txt Datei löschen

Postby Oepfel » 17. January 2009 16:21

das muss ich gleich mal bei mir testen. Die Textdatei wird vom einem programm benutzt ;(

Ich hätte auch lieber ne Datenbank

Danke auf jeden Fall mal hierfür
Oepfel
User avatar
Oepfel
 
Posts: 78
Joined: 10. October 2006 23:16
Location: Wendelstein


Return to PHP

Who is online

Users browsing this forum: No registered users and 39 guests