Seite 1 von 1

Nokia .vmg Exporter

Verfasst: 19.09.2009 14:44
von Blackskyliner
Hallo,
ich habe hier einen .vmg Exporter für SMS-Nachrichten, die in diesem Format von der Nokia PC-Suite gespeichert werden, schnell mal zusammen gebastelt.
Mit dem Exporter ist es möglich mehrere SMS-Dateien in eine Textdatei zusammen zu fassen. (Um diese z.B. auszudrucken o.ä.)

Viel Spaß damit für diejenigen, die dafür eine Verwendung finden ;)

Code: Alles auswählen

Structure NokiaMessage 
  phone_number.s
  date.s
  message.s
EndStructure

NewList messages.NokiaMessage()

Procedure  getNokiaMessage(file$, List l.NokiaMessage())
  fileptr.l = OpenFile(0, file$)
  If(fileptr)
    string.s = "";
    
    While Eof(0) = 0
      
     char.c = ReadCharacter(0);
     If char <> 0
      string = string + Chr(char);
     EndIf
    Wend
  
    AddElement(l())
    With l()
      \phone_number = StringField(StringField(string, 10, #LF$), 2, ":")
      \date = StringField(StringField(string, 14, #LF$), 2, ":")  + ":" + StringField(StringField(string, 14, #LF$), 3, ":") + ":" + StringField(StringField(string, 14, #LF$), 4, ":")
      \message = StringField(string, 15, #LF$)
    EndWith
  
    CloseFile(0)
  EndIf
EndProcedure

FileName$ = OpenFileRequester("Select Nokia .vmg", "", "Nokia .vmg SMS-File (*.vmg)", 0, #PB_Requester_MultiSelection)

While FileName$ 
  getNokiaMessage(FileName$, messages())
  FileName$ = NextSelectedFileName() 
Wend 


saveFile$ = SaveFileRequester("Save to .txt", "messages.txt", "Textfile (*.txt)", 0)

If saveFile$ <> ""
  fileptr.l = CreateFile(0, saveFile$)
  If fileptr
    ResetList(messages())
    ForEach messages()
      With messages()
        WriteStringN(0, "Von: " + \phone_number)
        WriteStringN(0, "Datum: "+ \date)
        WriteStringN(0, "Nachricht: "+ \message)
        WriteStringN(0, "");
      EndWith
    Next
    CloseFile(0)
  EndIf
EndIf

;---------------------------------;
; Copyright 2009 -  Blackskyliner ;
; Contact: <blackskyliner@gmx.de> ;
;---------------------------------;

MFG
Blackskyliner