Seite 1 von 2

Datei aus dem Internet herunterladen und speichern

Verfasst: Do 28. Jan 2021, 21:55
von Oscar B
Guten Abend!
Wie der Titel schon sagt möchte ich gerne über ein Makro eine Datei per URL aus dem Internet herunterladen und in einem festgelegten Ordner, wenn es geht sogar mit festgelegtem Dateinamen speichern. Das ganze soll möglichst passieren, ohne dass man etwas bestätigen muss und ohne, dass sich ein anderes Fenster öffnen.
Die Datei soll einfach im Hintergrund heruntergeladen und gespeichert werden.
Vielen Dank im Voraus!!! :D

Re: Datei aus dem Internet herunterladen und speichern

Verfasst: Do 28. Jan 2021, 22:00
von Wanderer
Du suchst cURL.

Mfg, Jörn

Re: Datei aus dem Internet herunterladen und speichern

Verfasst: Do 28. Jan 2021, 22:08
von craig
Hallo Oscar,

Heute hat Volker Lenhardt die aktuelle deutschsprachige Übersetzung bereitgestellt:
Dieses Buch ist ein unbedingtes MUSS:
https://www.uni-due.de/~abi070/ooo.html

http://document-foundation-mail-archive ... 95055.html

Siehe:
Seite 298
Listing 270. Dokument wird über HTTP geladen.

und suche nach:
StoreAsURL

Re: Datei aus dem Internet herunterladen und speichern

Verfasst: Do 28. Jan 2021, 22:21
von Oscar B
Wenn ich das jetzt richtig verstanden habe, öffnet dieses Makro eine Datei aus dem Internet, die man dann später speichern lassen könnte! Gibt es auch eine Möglichkeit ein Dokument direkt zu speicher, ohne es zwischendurch zu öffnen?

Re: Datei aus dem Internet herunterladen und speichern

Verfasst: Do 28. Jan 2021, 22:31
von craig
Hallo Oscar,

ist alles im Buch mit Beispielen beschrieben.
Man muss die einzelnen Codes suchen und daraus ein Gesamtpaket schnüren.

Hier ein Beispiel, wie man eine CSV-Datei versteckt öffnen kann.

Code: Alles auswählen

sPath="C:\temp"
REM CSV-Datei öffnen
    sFileCSV = convertToUrl(sPath)
    if len(sFileCSV)>0 then
        dim mFileProps(2) as new com.sun.star.beans.PropertyValue
        mFileProps(0).Name = "FilterName" 	: mFileProps(0).Value = "Text - txt - csv (StarCalc)"
		' der erste Token (59) der Filteroptionen gibt den Datenfeld-Separator an:
		' Kommata	= 44
		' Semikola	= 59
        mFileProps(1).Name = "FilterOptions" : mFileProps(1).Value = "44,34,76,1,,0,false,true,true,false"
		' Datei im Hintergrund öffnen
        mFileProps(2).Name = "Hidden"		: mFileProps(2).Value = true
        oDocCSV = StarDesktop.loadComponentFromURL(sFileCSV, "_blank", 0, mFileProps())        
    end if
und dann könnte so etwas folgen:

Code: Alles auswählen

REM Seite 338
REM  Listing 305. Speichert ein Dokument an einem neuen Ort.

Dim args(0) As New com.sun.star.beans.PropertyValue
Dim sUrl As String
sUrl = "file:///c:/temp/test_file.odt"
args(0).Name = "Overwrite"  'Diese Eigenschaft ist in der Tabelle 115 beschrieben.
args(0).Value = False       'Ein existierendes Dokument wird nicht überschrieben.
ThisComponent.storeAsURL(sUrl, args())
Programmablauf:
  1. Dartei herunterladen
  2. versteckt öffnen
  3. dann im Standard, bzw. angegeben Ordner speichern

Re: Datei aus dem Internet herunterladen und speichern

Verfasst: Do 28. Jan 2021, 22:35
von Oscar B
Erstmal vielen Dank für die Antworten!
Ich werde das Ganze morgen mal ausprobieren!
Schönen Abend :D

Re: Datei aus dem Internet herunterladen und speichern

Verfasst: Do 28. Jan 2021, 22:48
von craig
Hallo Oscar,

auch Dir einen schönen Abend. :D

Ich hätte Dir gerne ausführlicher geantwortet, bin aber
im Augenblick mit zwei anderen Projekten beschäftigt.

Re: Datei aus dem Internet herunterladen und speichern

Verfasst: Fr 29. Jan 2021, 08:12
von Wanderer
Oscar B hat geschrieben:
Do 28. Jan 2021, 22:21
... Gibt es auch eine Möglichkeit ein Dokument direkt zu speicher, ohne es zwischendurch zu öffnen?
Einerseits nein, weil jedes Programm dass einen solchen Download macht, die empfangenen Daten entweder insgesamt oder in Teilen zwischenspeichern muss und dann lokal speichert.

Eine Möglichkeit bleibt: Den Download an ein anderes Programm zu delegieren, dass die Datei dann natürlich öffnen, zwischenspeichern und wegschreiben muss.
(Also curl via shell() aufrufen.)

Wenn Du die Datei nicht öffnen willst stellt sich mir die Frage, warum Du das überhaupt in Office machen willst. Klingt wie mit dem LKW zum Briefkasten fahren...

Mfg, Jörn

Re: Datei aus dem Internet herunterladen und speichern

Verfasst: Fr 29. Jan 2021, 08:47
von Oscar B
Moin!
Wie kann ich ein Dokument anders deklarieren, als mit odoc=thisComponent?
Gibt es eine Möglicgkeit das mit dem Namen des Dokumentes zu machen?
Wenn ich nämlich den Code von oben benutzte, dann wird das Dokument, über das ich das Makro ausführe gespeichert und nicht das neu geöffnete!
Vielen Dank!

Re: Datei aus dem Internet herunterladen und speichern

Verfasst: Fr 29. Jan 2021, 13:38
von F3K Total
Moin,
wie wäre es mit FileCopy()

Code: Alles auswählen

Sub test
    sSource  = "https://www.pitonyak.org/OOME_4_0.odt"
    sTarget = "C:\Users\<USER>\Desktop\OOME_4_0_autodownload.odt"
    FileCopy (sSource, sTarget)
end sub
... natürlich muss der Zielpfad noch angepasst werden.
Gruß R