SMS aus CVS oder Textdatei erstellen

Hier könnt ihr alles Fragen, was zwar Handys betrifft aber mit meinen Programmen nix zu tun hat
Antworten
Peter-Müller
Beiträge: 5
Registriert: Mo 13. Apr 2020, 06:41
Wohnort: Nordsee

SMS aus CVS oder Textdatei erstellen

Beitrag von Peter-Müller »

Hallo zusammen,
ich würde gerne eine CVS Tabelle oder eine Textdatei mit Telefonnummer und einem Text erstellen, den ich dann per Handy als SMS versenden kann. Also keine Spam sondern ca. 30 SMS als Terminbestätigungen für die nächste Woche so das ich den Text auch mit persönlicher Anrede, Datum und Uhrzeit versenden kann.
Gibt es diese Möglichkeit schon im MPE?
icke1954
Moderator
Beiträge: 18176
Registriert: Sa 19. Apr 2014, 10:35

Beitrag von icke1954 »

Willkommen in unserem Forum!
Siehe => http://www.fjsoft.at/forum/viewtopic.ph ... 811#113811
Peter-Müller
Beiträge: 5
Registriert: Mo 13. Apr 2020, 06:41
Wohnort: Nordsee

Beitrag von Peter-Müller »

Oh super!

DANKE Icke1954!

Die beiden Dateien kann ich erstellen.

Aber... Ich habe leider keine Ahnung vom Programmieren. :oops:

Nun zu meinen Problemen:
1. Ich möchte nicht immer den einen Text zu allen senden, sondern eine Terminbestätigungen senden. Eine Bestätigung am 15.04. um 10:00 Uhr und dem nächsten um 11.00 Uhr und den nächsten z.B. um 13.00Uhr. Ausserdem würde ich gerne eine persönliche Anrede mit einbauen in die Textdatei. Gibt es dafür eine Vorlage mit anderem Quellcode für die VBS-Datei? Wenn ich es richtig verstehe, wird ja jedem nach der Zeile 1 die Zeile 1 zugesendet oder?

Ich stelle mir es so vor, dass ein der einen Spalte die Telefonnummer steht und in der nächsten dann der Text in der jeweiligen Zeile. Vielleicht gibt es hier aber auch noch bessere Ideen?

2. Gibt es hier noch eine Anleitung, was ich genau zu tun habe, wenn ich die txt Datei und die VBS-Datei erstellt habe?

VG Peter
Peter-Müller
Beiträge: 5
Registriert: Mo 13. Apr 2020, 06:41
Wohnort: Nordsee

Beitrag von Peter-Müller »

Oh, sehr cool!

Meine 2 Frage hat sich bereits erledigt... FREU!
icke1954
Moderator
Beiträge: 18176
Registriert: Sa 19. Apr 2014, 10:35

Beitrag von icke1954 »

Zu 1.
Erstelle eine Textdatei => SMS.txt:
1. Zeile: HandyNr-1;SMS-Text-1
2. Zeile: HandyNr-2;SMS-Text-2
3. Zeile: HandyNr-3;SMS-Text-3
...

Erstelle eine VBS-Datei mit folgendem Inhalt:

Code: Alles auswählen

Dim TelNr()
Dim SMSText()
dateiPfad = "SMS.txt"
x = 0
Const ForReading = 1

Set fs = CreateObject("Scripting.FileSystemObject")

If (fs.FileExists(dateiPfad)) Then
   Set f = fs.OpenTextFile(dateiPfad, ForReading)

   Do While f.AtEndOfStream <> True
      x = x+1
      ReDim Preserve TelNr(x)
      ReDim Preserve SMSText(x)
      org_zeile = f.Readline
      TelNr(x)=left (org_zeile, instr(org_zeile, ";")-1)
      SMSText(x)=right (org_zeile, len(org_zeile)-instrrev (org_zeile, ";"))
   Loop
   f.Close
   AnzahlSMS = x 
end if

For n = 1 to AnzahlSMS
   RunMPE "action=sendmessage flags=noerrmsg savetosent=1 number=" & TelNr(n) & " text=" & Chr(34) & SMSText(n) & Chr(34)
   WScript.Sleep 5000

next

Function RunMPE(Arguments)
  set shell = CreateObject("WScript.Shell")
  shell.run "myphoneexplorer " & Arguments ,3
End Function
oder

Erstelle eine Textdatei => SMS.txt:
1. Zeile: SMS-Text-1
2. Zeile: HandyNr-1
3. Zeile: SMS-Text-2
4. Zeile: HandyNr-2
5. Zeile: SMS-Text-3
6. Zeile: HandyNr-3
....


Erstelle eine VBS-Datei mit folgendem Inhalt:

Code: Alles auswählen

Dim TelNr()
Dim SMSText()
dateiPfad = "SMS.txt"
x = 0
Const ForReading = 1

Set fs = CreateObject("Scripting.FileSystemObject")

If (fs.FileExists(dateiPfad)) Then
   Set f = fs.OpenTextFile(dateiPfad, ForReading)

   Do While f.AtEndOfStream <> True
      x = x+1
      ReDim Preserve TelNr(x)
      ReDim Preserve SMSText(x)
      org_zeile = f.Readline
      if x mod 2 = 1 then
         x2=(x+1)-(x+1)/2
         SMSText(x2)= org_zeile
      else
         TelNr(x-x/2)= org_zeile
      end if
   Loop
   f.Close
   AnzahlSMS = x/2 
end if

For n = 1 to AnzahlSMS
   RunMPE "action=sendmessage flags=noerrmsg savetosent=1 number=" & TelNr(n) & " text=" & Chr(34) & SMSText(n) & Chr(34)
   WScript.Sleep 10000
next

Function RunMPE(Arguments)
  set shell = CreateObject("WScript.Shell")
  shell.run "myphoneexplorer " & Arguments ,3
End Function
Peter-Müller
Beiträge: 5
Registriert: Mo 13. Apr 2020, 06:41
Wohnort: Nordsee

Beitrag von Peter-Müller »

Vielen Dank Icke1954!

Ich werde dein Script am Abend ausprobieren.

:D

VG Peter
Peter-Müller
Beiträge: 5
Registriert: Mo 13. Apr 2020, 06:41
Wohnort: Nordsee

Beitrag von Peter-Müller »

Hallo Icke1954,

ich habe gerade Dein Skript ausprobiert, leider habe ich eine Fehlermeldung in Zeile: 17, Zeichen: 7, Fehler: ungültige Prozeduraufruf "left" Code: 800A0005.

Würdest Du nochmal über den Code schauen?

Nochmal Danke für das Script und

VG Peter
icke1954
Moderator
Beiträge: 18176
Registriert: Sa 19. Apr 2014, 10:35

Beitrag von icke1954 »

Bitte überprüfe Deine Textdatei SMS.txt
- Es darf keine Leerzeilen geben
- Achte auf folgendes Format:
[Telefonnummer][Semikolon][SMS-Text]

Ich habe den Code etwas angepasst, um diese Probleme abzufangen:

Code: Alles auswählen

Dim TelNr()
Dim SMSText()
dateiPfad = "SMS.txt"
x = 0
Const ForReading = 1

Set fs = CreateObject("Scripting.FileSystemObject")

If (fs.FileExists(dateiPfad)) Then
   Set f = fs.OpenTextFile(dateiPfad, ForReading)

   Do While f.AtEndOfStream <> True
      x = x+1
      ReDim Preserve TelNr(x)
      ReDim Preserve SMSText(x)
      org_zeile = f.Readline
      if not instr(org_zeile, ";")=0 then
        TelNr(x)=left (org_zeile, instr(org_zeile, ";")-1)
        SMSText(x)=right (org_zeile, len(org_zeile)-instrrev (org_zeile, ";"))
      else x = x-1
      end if
   Loop
   f.Close
   AnzahlSMS = x
end if

For n = 1 to AnzahlSMS
   RunMPE "action=sendmessage flags=noerrmsg savetosent=1 number=" & TelNr(n) & " text=" & Chr(34) & SMSText(n) & Chr(34)
   WScript.Sleep 5000

next

Function RunMPE(Arguments)
  set shell = CreateObject("WScript.Shell")
  shell.run "myphoneexplorer " & Arguments ,3
End Function
HeinzJ
Beiträge: 6
Registriert: Mo 25. Jan 2021, 20:09

Beitrag von HeinzJ »

Moin Icke,

dein Script ist großartig!

Ich habe nur ein ü,ä,ö Problem: Ich habe die Kodierung im notepad auf UTF-8 gestellt, im notepad kann ich die Buchstaben "ü, ö, ä" perfekt sehen, aber in den versendeten SMS seht leider nur ein Buchstabensalat.

Oh nein, nun habe ich noch ein Problem, ich habe 3 Zeilen mit meiner Handynummer eingefügt und 3 Unterschiedliche Texte, leider sendet er nun nur den Text aus der ersten Zeile 2mal.

Habe ich was falsch gemacht?

VG Heinz
icke1954
Moderator
Beiträge: 18176
Registriert: Sa 19. Apr 2014, 10:35

Beitrag von icke1954 »

Du solltest die Codierung des Editors,mit dem Du die SMS erstellst, statt auf UFT8 auf ANSI stellen.
Peter-Mueller
Beiträge: 1
Registriert: So 7. Feb 2021, 21:12

Beitrag von Peter-Mueller »

Hallo zusammen,

ich habe folgendes Problem:

Eigentlich hat das Skript wirklich gut funktioniert. Nun kommen aber wohl nicht mehr alle SMS an.

Also habe ich das Skript nochmal ausprobiert, und mir selber 3 unterschiedliche SMS zusenden wollen, aber ich erhielt 2x die SMS aus der 1. Zeile.

Hat dazu jemand eine Idee?

VG Peter
icke1954
Moderator
Beiträge: 18176
Registriert: Sa 19. Apr 2014, 10:35

Beitrag von icke1954 »

Versuche mal die Wartezeit zwischen den SMS zu erhöhen:
WScript.Sleep 5000 => WScript.Sleep 10000
HeinzJ
Beiträge: 6
Registriert: Mo 25. Jan 2021, 20:09

SMS kommt oft 2x bei Empfänger an

Beitrag von HeinzJ »

Hallo zusammen,
ich nutze dieses Script nun sein ein paar Wochen und habe die Rückmeldung erhalten, dass meine SMS 2x bei Empfänger angekommen ist.

Im Postausgang sehe ich die aber nur eine versendete SMS.

Ich finde, es ist wirklich ein klagen auf hohem Niveau und habe damit kein Problem.

Sollte jemand allerdings eine Idee haben, warum das bei mir so ist, freue ich mich über eine Rückmeldung.

VG Heinz
Antworten