In Text suchen und nachfolgende Zeichen liefern

Begonnen von martin.k, 17. April 2009, 19:43:19

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

martin.k

Hi.

Es gibt ja schon eine ganze Menge an String-Funktionen, aber leider finde ich nicht das richtige.
Mein Inputtext hat ca. 6000 Zeichen (inclusive Leerzeichen)

Input: Text
Ab Position Suchen
Anzahlzeichen
Zurückmelden: Text


Beispiel:   <part p="n">  <icon>12</icon>   <t>Rain</t>

Ab Position Suchen: 1
Anzahlzeichen: 4
Zurückmelden: part
Beispiel ENDE

Desweiteren müsste man natürlich vorher die genaue Position finden wo man suchen will:

Input: Text
Suchen: Text
Offset: ggf noch weiterlaufen
Zurückmelden: erste Position danach

Beispiel:   <part p="n">  <icon>12</icon>   <t>Rain</t>

Suchen: part  (letztes Zeichen ist Pos 5 der Kette)
Offset: 4
Zurückmelden: 9
Beispiel ENDE

Richtig Super wäre natürlich wenn man die XML-Ketten direkt angeben könnte und man den Wert zurückbekommt  :-)
Beispiel:     
<day d="3" t="Monday" dt="Apr 20">
      <hi>22</hi>
      <low>10</low>
      <part p="d">
        <icon>30</icon>
        <t>Partly Cloudy</t>

Suchen nach Stelle:  Day d="3" part p="d" t = ?
:-)

Anbei eine Auszug als TXT-Datei.

Grüße
Martin




[gelöscht durch Administrator]

peewit

#1
hallo martin.k

hast du dir schon die _buffer_search function angesehen


Richtig Super wäre natürlich wenn man die XML-Ketten direkt angeben könnte und man den Wert zurückbekommt  :-)

so wie es aussieht möchtest du vom "weatherchannel.com" die xml wetterdaten auswerten

mit den klassischen steuerungen ist es nicht möglich xml zu parsen

aber dann kam oscat.....

wir arbeiten seit längerer zeit an einer plattformneutralen ethernet-blbiothek
der referenzcode ist auch soweit fertig, und darin befindet sich auch ein XML-PARSER Baustein
damit ist es nun wirklich möglich beliebige XML-Elemente auszuwerten !

dazu gibt es auch einen YAHOO_WEATHER Baustein der genai diese Wetterdaten in einen Datenarray fertig ausgewertet ablegt.


da du wahrscheinlich ein codesys-anwender bist, gibt es das problem noch das "hugo" noch keine zeit hatte diese bibliothek zu portieren

ich kann dir den referenzcode zukommen lassen, und du passt ihn dir selber an......

ich habe dir die doku als file angehängt

[gelöscht durch Administrator]

martin.k

Super ! Danke ! Klasse !

Aber ob ich es umschreiben kann? Ich denke nicht. Das wäre mehr ausprobieren als geplantes wissenliches umschreiben ;-)

Grüße
Martin

hofumbau

Hallo zusammen,

ich suche auch eine Möglichkeit Wetterdaten via SOAP von weatherchannel.com zu lesen. Was müsste den portiert werden?

Gruß
Matthias

peewit

#4
für die weatherchannel-daten sind folgende dinge notwendig

1. dns-auflösung (www.weatherchannel.com = ipxxx.xxx.xxx.xxx
2. auf basis der ip wird dann eine http-get anfrage gemacht
3. die empfangenen daten bestehen aus http header und den eigentlichen waether-xml daten
4. xml parser der die einzelnen elemente ausgibt und einen baustein der releavante infos in datenarray ablegt

(siehe doku oscat-network-library)

in der library hole ich mir zwar die wetterdaten von yahoo (yahoo bezieht sie selber wiederum von weatherchannel) aber im prinzip ist es das gleiche, aber damit umgehe ich nur die wahnsinnigen lizenz-bestimmungen von weather-channel

im prinzip ist alles fertig in der inoffiziellen oscat-network-library
problem ist das unser referenzcode auf der plattform pcworx entwickelt wurde
und der plattform neutrale wrapper baustein für ethernet-zugriff noch nicht für codesys etc.. umgesetzt ist.
es fehlt ein einziger baustein als bindeglied

das heisst wenn jemand das alles neu und selber programmieren möchte , dann hat er mehrere wochen arbeit.
jedoch ist selbst der fehlende wrapper baustein für codesys nicht ohne gute systemkenntnisse umzusetzen

sollte sich jemand meinen das er das schaffen kann, dann kann er gerne den referenzcode zur portierung bekommen.
bislang hatten wir keine ressourcen frei um die ethernet-portierung voranzutreiben

demnächst werden ich die network-library ergänzen mit einer ip2geo funktion
damit kann die sps direkt herausfinden welche WAN-IP sie besitzt und auf welchen längen und breitengrad diese installiert ist, und somit auch die zeitzone selber bestimmen, und kann sich auch gleich mittels SNTP sich die aktuelle UTC Zeitzeit holen.

McNugget2000

Meine Fresse! (Tschuldigung)

Was Ihr da vorhabt ist ja echt der Hammer.

Ich bin echt total gespannt, auf die ersten Portierungen.
Leider kann ich bei weitem nciht so gut programmieren, dass ich es unterstützen könnte.

Das mit der automatischen Lokalisierung der SPS durch die WAN-IP ist total genial.

Das Ende aller dämlichen Zeitstellerei und bei Anlagen, die weltweit aufgestellt werden spart das auch ne Menge Heck-Meck.

Sehr cool.

Ich leistet wirklich klasse Arbeit. Speziell mir Programmier-Dummy hilft die OSCAT.LIB absolut weiter, da man sich die meisten Sachen im Quellcode abgucken kann.

Ich wusste nicht, wo ich das jetzt mal hinschreiben sollte. Musste es mal los werden.


Gruss

McNugget

hugo

danke das freut uns das OSCAT hilft
am besten ist wenn du eine referenz einträgst unter ankündigungen / referenzen