String-Bearbeitung + Firefox öffnen

Crouchi

Cadet 4th Year
Registriert
Juli 2012
Beiträge
88
Hallo,

Ich hoffe Ihr könnt mir helfen, ich versuche zur Zeit ein Programm zu schreiben. Jedoch bekomme ich es weder mit einer Batch noch mit einer VBS hin.

Das Programm soll von einem anderem Programm angestoßen werden. Die Meldung soll direkt durch die Ausführung übergeben werden.
Ungefähr so:
"C:\Users\Crouch\Desktop\Firefox.vbs" %meldung%"

Das Programm soll aus der Meldung:
"BRAND 2: in Musterhausen, Muster Straße 75a: Küchenbrand",
nur die Straße, die Hausnummer und den Ort durchlassen.

Diese Informationen sollen direkt in einem Link eingefügt werden:
https://maps.google.de/maps?q=ORT+STRASSE+HAUSNUMMER

Dieser sollte dann mit Firefox geöffnet werden.


Bis jetzt habe ich es soweit geschafft das per Batch-Datei, die Daten in den Link gespeist werden, jedoch öffnet sich pro Information ein Tab.
Auch das Stichwort und die zusätzliche Meldung (Küchenbrand) wird noch geöffnet.

Der Aufbau unserer Alarmmeldung ist soweit ich das überblicken kann immer gleich.

Hoffe ich finde hier jemanden der mir weiterhelfen kann.

mit freundlichen Grüßen

Crouchi
 
das ich das richtig verstehe!?

du willst das programm a, das zb eine feuermeldeanlage sein könnte, den standort des alarms in eine zb. google maps location umwandelt und diesen standort dann auf dem programm b visuell ausgibt? das aber soll über ein mittelprogramm, also programm c bewerkstelligt werden, welches die daten von programm a in programm b übergibt und eben selbes auch startet.



sprich:

prog a data out -> prog c get data from prog a -> prog c start prog b -> prog c send data from prog a to prog b = output
 
Zuletzt bearbeitet:
Im Grunde möchte ich:
Programm A übergibt nur die Meldung.

Diese Meldung soll mit Programm B (welches ich benötige) auf Ort Strasse und Hausnummer begrenzt werden und das direkt in einen Google Maps Link einfügen.
Programm B soll ebenfalls diesen Link mit Firefox starten.
 
Wie genau erfolgt denn der Aufruf des gesuchten Skripts? Ist die Meldung hinten dran in Anführungszeichen?
Kannst du noch mehr über den Aufbau der Meldungen sagen?
Den muss man kennen, um die Daten heraus zu holen. Steht bspw. auch wirklich immer ein "in" vor dem Ortsnamen?
Könnte man also einfach immer den Text zwischen dem in und dem zweiten Doppelpunkt nehmen?
Aus nur einem Meldungsbeispiel ist das leider nicht ersichtlich.
 
simpsonsfan schrieb:
Wie genau erfolgt denn der Aufruf des gesuchten Skripts? Ist die Meldung hinten dran in Anführungszeichen?
Kannst du noch mehr über den Aufbau der Meldungen sagen?
Den muss man kennen, um die Daten heraus zu holen. Steht bspw. auch wirklich immer ein "in" vor dem Ortsnamen?
Könnte man also einfach immer den Text zwischen dem in und dem zweiten Doppelpunkt nehmen?
Aus nur einem Meldungsbeispiel ist das leider nicht ersichtlich.


Der Aufruf des gesuchten Skripts erfolgt durch ein Ereignis in dem Programm A. Dort können eig. alle Programme mit aufgerufen werden. VBS Batch Exe usw.
Der Aufbau der Meldungen ist immer gleich.
Ergo:
Alarmstichwort: in ORT, STRASSE Hausnummer : Meldung


Wie du schon gesagt hast, man könnte eigentlich immer den Text zwischen in und dem zweiten Doppelpunkt nehmen.
Desweiteren müsste glaube ich zur HTML/Google Maps kompatibilität die Leerzeichen noch durch ein + ersetzt werden.

Der Link https://maps.google.de/maps?q=ORT+STRASSE+HAUSNUMMER müsste dann auch sofort in Firefox geöffnet werden.
 
Als Batch:
Code:
@echo off
set str=%1
for /f "tokens=2 delims=:" %%a in (%str%) do set str=%%a
set str=%str:~4,100%
set str=%str: =+%
set str=https://maps.google.de/maps?q=%str%
"C:\Program Files\Mozilla Firefox\firefox.exe" %str%
Allerdings ist das noch für die obige Meldung, in der kein Leerzeichen zwischen Hausnummer und Doppelpunkt am Ende war. Das zusätzliche + in der URL sollte aber auch nicht stören.
Man beachte eben, dass hier nach dem ersten Doppelpunkt 4 Zeichen entfernt werden (" in "), d.h. es sollte auch immer genau so dastehen.
Evtl. auftretende Umlaute oder ein Scharf-S müssen halt auch richtig kodiert übergeben werden.
 
Okay, dankeschön schonmal soweit.

Wegen den Umlauten, in dem Text wird zu 95% der Fälle ein Ö stehen oder halt bei Straße ein "ß", was muss denn dort beachtet werden?! Reicht da ein chcp 1252?!

Desweiteren gehe ich davon aus das das eine Batch ist oder? Bitte erschlag mich nicht falls es etwas anderes ist. :D

Außerdem ist das so variabel, das es auch längere Texte zulässt?! Wie zum Beispiel

Alarm: in Müsterhausensdreckskaff, Musterstraßengasse 106 : Betrug


Hoffe das ist nicht zu viel auf einmal.


EDIT:
Gerade getestet.
Er schmeißt mir immer nur den 4. Buchstaben des Alarmstichworts raus.
Fängt die Meldung also mit Brand an, beschränkt er sich nur auf das D.
https://maps.google.de/maps?q=D
 
Zuletzt bearbeitet:
Ja, das chcp 1252 söllte eigentlich klappen.
Und du hättest die Meldung auch in Anführungszeichen setzen sollen, deshalb hab ich da vorher extra danach gefragt. Wenn das beim Aufruf nicht klappt, muss man die Batch anders schreiben.
In Zeile 4 kannst du die 100 Zeichen auch beliebig erhöhen, das geht dann halt bis zum zweiten Doppelpunkt.
 
Hallo,


super herzlichen Dank, mit Anführungszeichen funktioniert es nun wunderbar.

Meine Frage wäre jetzt, wie groß der Aufwand wäre, das ganze ohne Anführungszeichen hinzubekommen.


Gruß

Crouchi


EDIT:
Nach langem Testen ist mir noch ein Problem aufgefallen, was ich am Anfang vielleicht nicht richtig beschrieben habe.
Wie du schon sagtest eine Meldung ist schwer.

Denn:
Alarmstichwort: Firmen u. Name GmbH & Co KG in ORT, STRASSE Hausnummer : Meldung

funktioniert wieder nicht, dort müsste dann wirklich so getrennt werden das ausschließlich Ort Straße Nummer weitergegeben wird, egal wie lang oder kurz ist. Also mit oder ohne Firmenname.
 
Zuletzt bearbeitet:
Das Problem ist nur, woran soll man erkennen, was der Ort ist? Da müsstest du dann noch eine Datenbank ranmachen, in der alle möglichen Orte sind. Denn es kann ja wahrscheinlich auch mal vorkommen, dass im Ortsnamen ein Leerzeichen ist. Oder stünde dann dort immer ein Bindestrich?
Dennoch wird es mit zunehmender Komplexität dann vielleicht trotzdem einfacher, das in einer anderen Sprache zu versuchen, in der man bspw. auch die Variablenlänge bequem auslesen kann.
Ohne Anführungszeichen wird's als Batch übrigens auch schwer, da dann nach jedem Leerzeichen ein neues Argument beginnt, also müsste man exakt festlegen, an wievielter Stelle der Ort steht etc.
 
Uiuiui das ist zurzeit so nicht machbar.

In anderen Sprachen, habe ich zwar minimale Erfahrungen, aber die reichen nicht aus um da noch etwas zu schreiben, entwickeln.

Habe alles jetzt ein wenig angepasst:

Code:
set str=%1

for /F "tokens=3 delims=:" %%a in (%str%) do set str=%%a


set str=%str: =+%
set str=https://maps.google.de/maps?q=%str%
"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" %str%

Desweiteren hab ich jetzt die Meldungen die die Batch bekommt in Anführungszeichen gesetzt und habe nach dem "in" immer ein Doppelpunkt stehen.

Bis jetzt funktioniert es immer so wie ich es möchte. Das heißt, egal wie lang die Meldung ist, er sortiert mir immer nur den Ort, Straße, Hausnummer raus.

Schön ist aber leider anders, aber erst einmal funktioniert es.


Hier schonmal ein riesen Dank an simpsonsfan für deinen Code.


freundliche Grüße

Crouchi
 
Um den zusätzlichen Doppelpunkt zu vermeiden, könntest du evtl. auch noch mit findstr arbeiten, und damit das "in" suchen. Als ich die Batch geschrieben habe, war mir das nur entfallen, und mit find hat es nicht geklappt, weil da nur Dateien durchsucht werden.
 

Ähnliche Themen

Zurück
Oben