HTTP-Download

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

ortenau-s-bahner
***
Beiträge: 61
Registriert: Mi, 30.06.2004 09:12

HTTP-Download

Beitrag von ortenau-s-bahner »

Hi,

gibt es die Möglichkeit, per OO-Basic Daten über eine HTTP-Verbindung runterzuladen und dann lokal weiterzuverarbeiten? Wenn ja, wie?
Also bspw. aktuelle Börsenkurse aus dem Netz laden und dann in Calc in einer Tabelle ablegen.

TIA

ortenau-s-bahner
hol.sten
******
Beiträge: 871
Registriert: Fr, 18.11.2005 21:21

Re: HTTP-Download

Beitrag von hol.sten »

ortenau-s-bahner hat geschrieben:gibt es die Möglichkeit, per OO-Basic Daten über eine HTTP-Verbindung runterzuladen und dann lokal weiterzuverarbeiten?
Ja.
ortenau-s-bahner hat geschrieben:Wenn ja, wie? Also bspw. aktuelle Börsenkurse aus dem Netz laden und dann in Calc in einer Tabelle ablegen.
Alles in englisch, aber genau das was du zu suchen scheinst:
- http://www.oooforum.org/forum/viewtopic.phtml?t=4103
- http://www.oooforum.org/forum/viewtopic.phtml?t=4069
- http://www.oooforum.org/forum/viewtopic.phtml?t=31908

With kind regards
hol.sten
ortenau-s-bahner
***
Beiträge: 61
Registriert: Mi, 30.06.2004 09:12

Re: HTTP-Download

Beitrag von ortenau-s-bahner »

Hi,
Danke, das sieht schon mal vielversprechend aus. Werd ich mir mal anschauen.

ortenau-s-bahner
HOG
Beiträge: 1
Registriert: Mo, 22.01.2007 15:09

Beitrag von HOG »

Hallo,

ich suche ebenfalls nach einer Möglichkeit, Yahoo-Stock-Quotes in OOo Calc per Makro zu laden.

Die Funktion GetStockPrice() aus dem ersten Link bringt mir folgende Fehlermeldung:

BASIC runtime error.
An exception occurred.
Type: com.sun.star.lang.IllegalArgumentException
Message: URL seems to be an unsupported one..

Die URL geht auch im Browser nicht. Z.B.
http://quote.yahoo.com/d/quotes.csv?s=H ... hgv&e=.csv

Hier als Link geht es, aber nicht, wenn die Adresse direkt im Browser eingegeben wird.

Wenn ich das &e=.csv hinten weg lasse bekomme ich das gewünschte Ergebnis im Browser. Dieses als Text-File abspeichern und dann Calc das File anstatt die URL lesen lassen geht. Aber auf direktem Weg liest Calc auch diese URL nicht.

Falls hier jemand weiterhelfen kann, muchas gracias schon mal im voraus.

HOG
hol.sten
******
Beiträge: 871
Registriert: Fr, 18.11.2005 21:21

Beitrag von hol.sten »

HOG hat geschrieben:Die URL geht auch im Browser nicht. Z.B.
http://quote.yahoo.com/d/quotes.csv?s=H ... hgv&e=.csv

Hier als Link geht es, aber nicht, wenn die Adresse direkt im Browser eingegeben wird.
Welchen Browser verwendest du? Wenn ich diese Adresse im Firefox in ein neues Tab eintrage, öffnet sich der Download-Dialog. Wenn ich die Adresse im IE 7 in ein neues Tab eintrage, wird mir folgendes im Browser-Fenster angezeigt:

Code: Alles auswählen

"HOG",71.38,"1/22/2007","12:24pm",-0.22,71.60,72.00,71.03,2505900
HOG hat geschrieben:Aber auf direktem Weg liest Calc auch diese URL nicht.
Ich hatte die obigen Links bisher nicht ausprobiert. Also habe ich das mal schnell nachgeholt mit OOo 2.1.0 US und OOo 1.1.5 DE unter Windows XP.

Dann bin ich den obigen Links gefolgt und habe mir folgenden OOo Basic-Code von dort zusammenkopiert und jeweils in den OOo Versionen in einem Spreadsheet als Makro gespeichert und direkt in der OOo Basic IDE ausgeführt:

Code: Alles auswählen

REM  *****  BASIC  *****

Sub Main()
   ' Hole den Aktienkurs für die Software AG über die URL
   '   http://quote.yahoo.com/d/quotes.csv?s=SOW.DE&f=sl1d1t1c1ohgv&e=.csv
   Print "Software AG (WKN 330400): ", GetStockPrice( "SOW.DE" )
   ' Hole den Aktienkurs für die United Internet AG über die URL
   '   http://quote.yahoo.com/d/quotes.csv?s=UTDI.DE&f=sl1d1t1c1ohgv&e=.csv
   Print "United Internet AG (WKN 508903): ", GetStockPrice( "UTDI.DE" )
End Sub

'----------
' This function looks up the price of a stock symbol from yahoo.
' Pass in these parameters:
'      cStockSymbol - a string, which is the stock symbol.
' Returns:
'      A number which is the price of the stock.
'
Function GetStockPrice( ByVal cStockSymbol As String ) As Double
   ' Use this URL to get a stock price from Yahoo.
   ' For example, this URL...
   '   http://quote.yahoo.com/d/quotes.csv?s=SOW.DE&s=UTDI.DE&f=sl1d1t1c1ohgv&e=.csv
   ' would return a CSV file with the prices for both Software AG and United Internet AG.
   ' Similarly, we can form a URL for a single stock, based upon the parameter.
   cURL = "http://quote.yahoo.com/d/quotes.csv?s=" + cStockSymbol + "&f=sl1d1t1c1ohgv&e=.csv"
   
   ' Open up a new spreadsheet from the above URL.
   ' Specify the CSV filter with options that decode the CSV format comming back from Yahoo.
   ' Specify the Hidden property so that the spreadsheet does not appear on the screen.
   oCalcDoc = StarDesktop.loadComponentFromURL( cURL, "_blank", 0,_
      Array( MakePropertyValue( "FilterName", "Text - txt - csv (StarCalc)" ),_
            MakePropertyValue( "FilterOptions", "44,34,SYSTEM,1,1/10/2/10/3/10/4/10/5/10/6/10/7/10/8/10/9/10" ),_
            MakePropertyValue( "Hidden", True ) ) )
   
   ' Get the first sheet of the Calc document.
   oSheet = oCalcDoc.getSheets().getByIndex( 0 )
   ' Get the cell B1, which is the stock price.  (Row 0, Col 1.)
   nValue = oSheet.getCellByPosition( 1, 0 ).getValue()

   ' Be sure the close the spreadsheet, because it is hidden, and the user cannot close it.
   oCalcDoc.close( True )
   
   ' Return the value.
   GetStockPrice() = nValue 
End Function

'----------
'   Create and return a new com.sun.star.beans.PropertyValue.
'
Function MakePropertyValue( Optional cName As String, Optional uValue ) As com.sun.star.beans.PropertyValue
   Dim oPropertyValue As New com.sun.star.beans.PropertyValue
   If Not IsMissing( cName ) Then
      oPropertyValue.Name = cName
   EndIf
   If Not IsMissing( uValue ) Then
      oPropertyValue.Value = uValue
   EndIf
   MakePropertyValue() = oPropertyValue
End Function 
Und was soll ich sagen: Es läuft ganz ohne Probleme. Bei beiden OOo Versionen. Welche OOo Version bzw. welches Betriebssystem setzt du denn ein?

Regards
hol.sten
arttur
*
Beiträge: 16
Registriert: Sa, 23.12.2006 01:01

hallo hol.sten

Beitrag von arttur »

Hallo hol.sten,
dein Code funktioniert…
es werden zwei Fenster mit WKN und dem Preis angezeigt…
was musste man noch ändern damit die WKNs (Börsenkürzel) aus der Spalte A genommen werden und der Preis dann in Spalte B angezeigt wird bzw in einer Datei csv geschpeichert wird..


wir, die Börsiener haben Ahnung von DAX and Co aber null von Makros...
grüß
Microoo
Beiträge: 1
Registriert: Fr, 21.01.2011 10:00

Re: hallo hol.sten

Beitrag von Microoo »

arttur hat geschrieben:Hallo hol.sten,
dein Code funktioniert…
es werden zwei Fenster mit WKN und dem Preis angezeigt…
was musste man noch ändern damit die WKNs (Börsenkürzel) aus der Spalte A genommen werden und der Preis dann in Spalte B angezeigt wird bzw in einer Datei csv geschpeichert wird..


wir, die Börsiener haben Ahnung von DAX and Co aber null von Makros...
grüß

Will die Frage mal wieder aufgreifen, die Version ist zwar ne Neue, aber das prinzipielle Problem müsste das gleiche/aktuell sein oder? Was wäre denn dann nötig um die Spalten zu vertauschen?
Prevent Recovery
Antworten