WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   .vmg parsen? (http://www.wcm.at/forum/showthread.php?t=228177)

heli2sky 29.04.2008 09:15

.vmg parsen?
 
hallo!

ich habe unzählige .vmg dateien auf meinem computer (sms) und möchte diese in einen langen text zusammenfassen. einzeln rauskopieren wäre viel zu mühsam, also hab ich einfach mal mein glück mit php probiert...

folgende art funktioniert leider nicht ganz (nur fast...):

PHP-Code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>

<p>
<?php
$sms 
file("sms.txt");
foreach(
$sms as $s)
    echo 
"<br>&nbsp;" $s;
$c = (in_array("TEL:+43650xxx",$sms)) ? "ja" "nein";
echo 
"hihi" $c;
?>
</p>

</BODY>
</HTML>

PHP-Code:

 BEGIN:VMSG
 VERSION
:1.1
 X
-IRMC-STATUS:READ
 X
-IRMC-BOX:INBOX
 X
-NOK-DT:20080407T185300Z
 X
-MESSAGE-TYPE:DELIVER
 BEGIN
:VCARD
 VERSION
:3.0
 N
:
 
TEL:+43650xxx
 END
:VCARD
 BEGIN
:VENV
 BEGIN
:VBODY
 Date
:07.04.200818:53:00
 
## text leider ohne leerzeichen :( ##
 
END:VBODY
 END
:VENV
 END
:VMSG
 hihinein 

das problem ist, dass die ausgabe ohne das "&nbsp;" nur die erste zeile schafft (also "BEGIN:VMSG") und danach nix mehr kommt. ich kann die daten auch mit &nbsp; leider nicht wirklich weiterverarbeiten... "nein" sollte auch "ja" sein :(

ich hoffe ihr könnt mir helfen!

iG0r 29.04.2008 12:24

Schau mal auf php.net vorbei und suche nach fread, da findest du diverse Beispiele, die du sicher 1:1 verwenden kannst.

heli2sky 29.04.2008 12:37

das hilft mir leider nur wenig, da ich das file() verwenden wollte um gleich die zeilen einzeln zu haben...

fread bringt folgendes ergebnis:
PHP-Code:

BEGIN:VMSGVERSION:1.1X-IRMC-STATUS:READX-IRMC-BOX:INBOXX-NOK-DT:20080407T185300ZX-MESSAGE-TYPE:DELIVERBEGIN:VCARDVERSION:3.0N:TEL:+43650xx END:VCARDBEGIN:VENVBEGIN:VBODYDate:07.04.200818:53:00 ## text ohne spaces ## END:VBODYEND:VENVEND:VMSG 


iG0r 29.04.2008 19:52

Habe sowas für Logfiles schon mal geschrieben...

PHP-Code:

$logdir $_SERVER['DOCUMENT_ROOT'] . "/logs/";
if(
$serverlogdir opendir($logdir))
{
   while (
false !== ($logfile readdir($serverlogdir)))
   {
       if(
$logfile!="." && $logfile!="..") { $array_logfiles[] = explode("\n"$logfile); }
   }
   
closedir($serverlogdir);
}

for(
$i 0$i count($array_logfiles); ++$i)
{
    
$file fopen($logdir $array_logfiles[$i][0], "r");
    
    if(
$file)
    {
        while(!
feof($file))
        {
            
$buffer fgets($file4096);
            echo 
$buffer."<br />";
        }
            
    }
    
fclose($file);



heli2sky 29.04.2008 21:20

das ist ja leider das komische... dein skript bringt folgende ausgabe:

PHP-Code:

BEGIN:VMSG


















BEGIN
:VMSG




















BEGIN
:VMSG


















BEGIN
:VMSG


















BEGIN
:VMSG


















BEGIN
:VMSG 

wenn ich so eine vmg-date mit editplus2 öffne, gibt das das bild aus dem anhang. wenn ich aus editplus2 rauskopieren möchte, nimmt er nur das allererste "B"

mit dem windows editor geöffnet komme ich auf das:
Zitat:

BEGIN:VMSG
VERSION:1.1
X-IRMC-STATUS:READ
X-IRMC-BOX:INBOX
X-NOK-DT:20080420T034800Z
X-MESSAGE-TYPE:DELIVER
BEGIN:VCARD
VERSION:3.0
N:
TEL:+4368077xx
END:VCARD
BEGIN:VENV
BEGIN:VBODY
Date:20.04.2008 03:48:00
bob hat 1 neue nachricht fuer dich in deiner bob box.
END:VBODY
END:VENV
END:VMSG
grundsätzlich kann ich php ja nicht so schlecht, mit fread u.ä. hab ich ja auch sonst keine probleme, aber die .vmgs bring ich halt irgendwie nicht zum folgen ;)
das auslesen mittels file() und dann ausgeben mit jeweils einem space vor jeder zeile war bis jetzt der einzige erfolg. das ist aber leider zu wenig :( sobald ich es ohne leerzeichen vor jeder zeile ausgeben wollte, hat er nach dem BEGIN... gestreikt! und dann wären da noch die fehlenden leerzeichen in der textnachricht :(

iG0r 29.04.2008 22:38

Was willst du mehr als von dem File jede Zeile zu bekommen?
Mir ist nicht klar was du willst, du wirst es aber sicher schaffen ;)

heli2sky 29.04.2008 22:53

na ich weiß nicht so recht... aber danke für die aufmunternden worte.

was ich will (hast recht, hab ich eigentlich noch gar nicht richtig gesagt): den text-teil der sms herausfiltern und alle text-teile von allen sms zusammenfügen (ähnlich einem forum-thread oder tagebuch oder wie auch immer)

heli2sky 06.05.2008 18:51

keine tipps mehr für mich :(

iG0r 07.05.2008 11:47

Du hast doch schon alles was du brauchst. Zeile für Zeile einlesen und dann mit preg_match auswerten. Optional danach in eine Datenbank stopfen.

heli2sky 07.05.2008 12:58

na eben nicht, ich komm nur auf folgende ausgabe:

Zitat:

BEGIN:VMSG


















BEGIN:VMSG




















BEGIN:VMSG


















BEGIN:VMSG


















BEGIN:VMSG


















BEGIN:VMSG
normale text-dateien kann ich ohne probleme auslesen, aber die .vmg hat irgendwelche kryptischen zeichen drinnen, mit denen er nicht zurecht kommt! sämtliche leerzeichen werden weggekürzt (und das nur, wenn ich die zeilen einzeln mit vorangestelltem leerzeichen ausgebe - warum auch immer) bzw. im editplus2 als quadrate ausgegeben. der windows editor gibt sie als leerzeichen aus...

was könnte es mit diesen zeichen auf sich haben? :(


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag