Daten aus einem Text auslesen
Moderator: Moderatoren
Re: Daten aus einem Text auslesen
Hallo
Ist die erste * Endmarkierung tatsächlich da wo du sie geschrieben hast,oder ist das ein Fehler ?
Woher kommen die Texte ? ( evtl. könnte man die Quelle direkt auswerten )
Kopierst du so einen Textblock in eine Zelle hinein, oder sind das ca. 9 ( ? ) Zellen ( mit 3 leeren Zellen mittendrin ) untereinander.
Sind die "Schlüsselwörter" ( Kontrakt , Absender , 'Verkauf von' , nach, '(Qualität * )', Einzelpreis ) immer (exakt ?) gegeben, oder gibts da Variationen.
Ist die allgemeine Struktur (Zeilenumbrüche , Leerzeilen, relative Position der Schlüssel ) der Texte einigermassen fix oder eher variabel?
Das ist mit Calcbordmittel wahrscheinlich nicht lösbar, beantworte meine Fragen am besten gleich in einem neuen Thema im Basic-forum.
@Winfried : Kannst du das Thema verschieben ? - danke.
Gruß Karo
Ist die erste * Endmarkierung tatsächlich da wo du sie geschrieben hast,oder ist das ein Fehler ?
Woher kommen die Texte ? ( evtl. könnte man die Quelle direkt auswerten )
Kopierst du so einen Textblock in eine Zelle hinein, oder sind das ca. 9 ( ? ) Zellen ( mit 3 leeren Zellen mittendrin ) untereinander.
Sind die "Schlüsselwörter" ( Kontrakt , Absender , 'Verkauf von' , nach, '(Qualität * )', Einzelpreis ) immer (exakt ?) gegeben, oder gibts da Variationen.
Ist die allgemeine Struktur (Zeilenumbrüche , Leerzeilen, relative Position der Schlüssel ) der Texte einigermassen fix oder eher variabel?
Das ist mit Calcbordmittel wahrscheinlich nicht lösbar, beantworte meine Fragen am besten gleich in einem neuen Thema im Basic-forum.
@Winfried : Kannst du das Thema verschieben ? - danke.
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Daten aus einem Text auslesen
Hallo
Ich hab nur geschrieben das die Aufgabe mit Bordmitteln von Calc nicht sinnvoll lösbar ist, das schließt aber nicht aus das die Daten in Calc landen.
Gruß Karo
Ich hab nur geschrieben das die Aufgabe mit Bordmitteln von Calc nicht sinnvoll lösbar ist, das schließt aber nicht aus das die Daten in Calc landen.
Wirklich in eine Zeile ( mehrere Zellen nebeneinander ) ??Ich kopiere den Text in ein Zeile und
Also "copy and paste" aus einer Website, ist diese Seite allgemein erreichbar, falls ja wäre die Adresse recht nützlich.Und woher ich die Texte habe? Sie sind aus einem Online Handelsspiel (Kapi-Regnum)
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Daten aus einem Text auslesen
Hallo
Kannst du mal aus so einer "Kontrakt"-seite heraus umschalten auf →Ansicht →Quelltext anzeigen ... und den relevanten Html-Quellcode herauskopieren, lokal abspeichern, in ein Zip-archiv packen und hier anhängen ?
( Um Dateien anhängen zu dürfen musst du hier registriert sein und angemeldet ! )
Gruß Karo
Kannst du mal aus so einer "Kontrakt"-seite heraus umschalten auf →Ansicht →Quelltext anzeigen ... und den relevanten Html-Quellcode herauskopieren, lokal abspeichern, in ein Zip-archiv packen und hier anhängen ?
( Um Dateien anhängen zu dürfen musst du hier registriert sein und angemeldet ! )
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Daten aus einem Text auslesen
also den quellcode kann ich als anhang hier reinstellen. aber den relevanten teil herausfiltern übersteigt meine kentnisse total.
falls du dir das spiel mal ansehen willst kann ich kurzfristig das passwort ändern und dir zur verfügung stellen.
falls du dir das spiel mal ansehen willst kann ich kurzfristig das passwort ändern und dir zur verfügung stellen.
Re: Daten aus einem Text auslesen
Hallo
So:
Der Basiccode:
Den kopiertst du in eine neues Modul unter →Meine Makros→Standard...
Pythonsourcecode:
Da nimmst du am besten das angehängte Zip-archiv und entpackst es in den Ordner ~/user/Scripts/ deines OOobenutzerverzeichnisses ( den Pfad dorthin findest du unter →Extras→Optionen→OOo→Pfade... )
Danach kannst du in Calc mit der Funktion:
( ! als Matrixfunktion mit strg+shift+enter bzw. mit der [x]Matrix-option im Formelassistenten )
deine gewünschten Daten in 7 Zellen nebeneinander ausgeben lassen.
Mit etwas Glück*** kannst mit der anderen Funktion "kontrakt_aus_datei"**** die Daten direkt aus einer Datei auslesen, in dem Fall dann mit dem Pfad zu Datei als Argument.
***Sie braucht richtig viel Zeit bei meinen Tests
****Edit: Jetzt läuft auch die Funktion in normaler Geschwindigkeit
*******edit2: Den Syntaxfehler im Pythonscript berichtigt.
Gruß Karo
So:
Der Basiccode:
Code: Alles auswählen
REM Keep a global reference to the ScriptProvider, since this stuff may be called many times:
Global g_MasterScriptProvider
REM Specify location of Python script, providing cell functions:
Const URL_Main = "vnd.sun.star.script:sheetfunction.py$"
Const URL_Args = "?language=Python&location=user"
Function getMasterScriptProvider()
if NOT isObject(g_MasterScriptProvider) then
oMasterScriptProviderFactory = createUnoService("com.sun.star.script.provider.MasterScriptProviderFactory")
g_MasterScriptProvider = oMasterScriptProviderFactory.createScriptProvider("")
endif
getMasterScriptProvider = g_MasterScriptProvider
End Function
Function kontrakt_aus_datei( text )
sURL = URL_Main & "kontrakt_aus_datei" & URL_Args
oMSP = getMasterScriptProvider()
oScript = oMSP.getScript(sURL)
x = oScript.invoke( Array( text),Array(),Array())
kontrakt_aus_datei = x
end function
Function kontrakt_aus_zelltext( text )
sURL = URL_Main & "kontrakt_aus_zelltext" & URL_Args
oMSP = getMasterScriptProvider()
oScript = oMSP.getScript(sURL)
x = oScript.invoke(Array( text ),Array(),Array())
kontrakt_aus_zelltext = x
end Function
Pythonsourcecode:
Code: Alles auswählen
# -*- coding: utf-8 -*-
from __future__ import division
import sys
import uno
import re , urllib, urllib2
wrapper = uno.createUnoStruct('com.sun.star.script.ArrayWrapper')
wrapper.IsZeroIndex = False
def kontrakt_aus_datei( surl ):
with open( surl ) as text:
text = text.read()
return kontraktaustext( text )
def kontrakt_aus_zelltext( zelltext ):
return kontraktaustext( zelltext.encode("utf8"))
def kontraktaustext(text):
text = "%s" %(text)
pattern = re.compile(
r".*?Kontrakt Nr\. (\d+)" # Kontraktnr.
".*?Absender: ([\w äüößÄÜÖ]+)" # von ?
".*?nach ([\w äöüßÄÜÖ]+)" # nach ?
".*?([\d.]+) ([\w äöüßÄÜÖ]+?)" # Menge und Produkt
"\s*\(Qualit(?:ä|ä)t (\d+)\)" # Qualität
"\s*Einzelpreis: ([\d,]+)", re.S ) # Preis
liste = pattern.findall( text )
wrapper.Array = tuple( liste )
return wrapper
Danach kannst du in Calc mit der Funktion:
Code: Alles auswählen
=kontrakt_aus_zelltext(A1)
deine gewünschten Daten in 7 Zellen nebeneinander ausgeben lassen.
Mit etwas Glück*** kannst mit der anderen Funktion "kontrakt_aus_datei"**** die Daten direkt aus einer Datei auslesen, in dem Fall dann mit dem Pfad zu Datei als Argument.
***Sie braucht richtig viel Zeit bei meinen Tests
****Edit: Jetzt läuft auch die Funktion in normaler Geschwindigkeit
*******edit2: Den Syntaxfehler im Pythonscript berichtigt.
Gruß Karo
Zuletzt geändert von Karolus am Fr, 22.07.2011 16:03, insgesamt 1-mal geändert.
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Daten aus einem Text auslesen
Irgend etwas mache ich wohl immer noch Falsch 
Ich bekomme immer die im Anhang stehende Fehlermeldung

Ich bekomme immer die im Anhang stehende Fehlermeldung
- Dateianhänge
-
- Fehler.zip
- (72.55 KiB) 25-mal heruntergeladen
Re: Daten aus einem Text auslesen
Hallo
Mit der Fehlermeldung kann ich nun auch nichts anfangen (scheint sich um eine Datei mit einem falschen Zeitstempel zu handeln -kA ), ich hab gerade eine andere Fehlermeldung gefixt, hier funktionierts nun auch unter Win-Xp in einer Virtualbox ( bis auf ein verkorkstes Ä in "Kandierte Äpfel" )
Gruß Karo
Mit der Fehlermeldung kann ich nun auch nichts anfangen (scheint sich um eine Datei mit einem falschen Zeitstempel zu handeln -kA ), ich hab gerade eine andere Fehlermeldung gefixt, hier funktionierts nun auch unter Win-Xp in einer Virtualbox ( bis auf ein verkorkstes Ä in "Kandierte Äpfel" )
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Daten aus einem Text auslesen
Hallo
Mach mal einen Rechtsklick auf sheetfunction.py und schau unter ->Eigenschaften nach Erstellungs und Änderungsdatum ?
Gruß Karo
Mach mal einen Rechtsklick auf sheetfunction.py und schau unter ->Eigenschaften nach Erstellungs und Änderungsdatum ?
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Daten aus einem Text auslesen
Hmm, daran könnte es liegen...
Erstellt: 22 Juli ....
Geändert 21 Juli ....
Ich denke mal das kann so nicht ganz richtig sein. Mal schauen ob ich das irgendwie geändert bekomme. Leider habe ich heute keine Zeit mehr dafür.
Vielen Dank noch einmal
Erstellt: 22 Juli ....
Geändert 21 Juli ....
Ich denke mal das kann so nicht ganz richtig sein. Mal schauen ob ich das irgendwie geändert bekomme. Leider habe ich heute keine Zeit mehr dafür.
Vielen Dank noch einmal
