Netzkarte

X-No-Archive: Yes

begin Thread

Moin,

ich habe mich mal in Netz nach einer Übersichtskarte des deutschen (Hochspannungs-)Netzes umgesehen: Fehlanzeige, gibt es nicht - rumtelefonieren bei den "Energieriesen" brachte auch kein anderes Ergebnis. Schwaches Bild... (E.on wollte mir die Bilder

und

"verkaufen"; naja, besser als nichts.)

Bei gibt es eine etwas doofe Java-Anwendung, mit der man in winzige Ausschnitte eines einigermaßen brauchbaren europäischen Netzplans reingucken kann. Dahinter stecken Einzelbilder, die unter den fortlaufenden Adressen bis

gespeichert sind. Hat mal jemand eine Idee, wie ich es anstellen könnte, die automatisiert runterzuladen? Daraus kann man dann ziemlich einfach ein hochaufgelöstes Bild zusammenbasteln; ich habe mal einen Ausschnitt hochgeladen: (1,1 MB).

Gruß aus Bremen Ralf

Reply to
Ralf . K u s m i e r z
Loading thread data ...

WGet.exe? Oder das entsprechende $Get f=FCr ein Betriebssytem deiner Wahl?

Wird sowas in den Nutzungbedingungen erlaubt? (Mein ja nur).

Ingo

Reply to
Ingo Braune

X-No-Archive: Yes

begin quoting, Ingo Braune schrieb:

Wenn ich wüßte, wie das geht, würde ich dann fragen?

Gruß aus Bremen Ralf

Reply to
Ralf . K u s m i e r z

Ich nehme an Du hast Windows auf Deinem Rechner. Wenn ja dann: Wenn Du noch nicht hast, installiere die cygwin tools von

formatting link
setup ausf=FChren Installiere Dir die bash und "wget: Utility to retrieve HTTP and Ftp...." (leichter zu finden, wenn man im Installer mit dem Knopf "View" auf Full stellt).

=D6ffne Dir eine Bash (cygwin Icon, vorsicht, magisches schwarzes Fenster= )

Dort dann

for ((i=3D0; i

Reply to
Hans Müller

Hallo Ralf,

Am Fri, 14 Aug 2009 14:10:41 +0200 schrieb Ralf . K u s m i e r z:

hast du einen Windows-Rechner? Wenn ja, folgendes in eine Textdatei mit der Endung .vbs und anschließend einen Doppelklick darauf. Das Verzeichnis C:\Test sollte in dem Bleistift bereits vorhanden sein.

Dim strDest Dim objStream Dim objHTTP Dim strSource Dim i Const adTypeBinary = 1 Const adSaveCreateOverWrite = 2

strDest = "c:\Test\map2008_" strSource = "

formatting link
" Set objStream = CreateObject("ADODB.Stream") objStream.Type = adTypeBinary

Set objHTTP = CreateObject("msxml2.XMLHTTP") With objHTTP ' Diese Schleife entsprechend anpassen For i = 1 To 2311 .Open "GET", strSource & i & ".gif", False .send If .Status = 200 Then If .getResponseHeader("content-type") = "image/gif" Then objStream.Open objStream.write .responseBody objStream.savetofile strDest & i & ".gif", _ adSaveCreateOverWrite objStream.Close End If End If Next End With Set objStream = Nothing Set objHTTP = Nothing

Viele Grüße Michael

Reply to
Michael Schwimmer

X-No-Archive: Yes

begin quoting, Hans Müller schrieb:

Klingt gut. Ich werde jemandem sagen, daß er das für mich machen soll.

Gruß aus Bremen Ralf

Reply to
Ralf . K u s m i e r z

X-No-Archive: Yes

begin quoting, Michael Schwimmer schrieb:

Und warum funktioniert das nicht? Weil der Internetexploder bei mir keine Erlaubnis hat, *irgendwas* zu tun. Da habe ich nämlich in diverse Löcher ein paar Korken hineingesteckt und auch nicht geringste Lust, die wieder herauszuziehen.

Schönen Dank, aber das brauche ich gar nicht erst auszuprobieren.

Gruß aus Bremen Ralf

Reply to
Ralf . K u s m i e r z

X-No-Archive: Yes

begin quoting, "Ralf . K u s m i e r z" schrieb:

Hm, da waren ja nun zwei Vorschläge mit Zählschleifen. Geht sowas nicht auch mit JavaScript, also ein .html-File mit ein bißchen Code, das ich einfach im Firefox aufmachen kann und dann einfach losrennt?

Also so:

for (i=1;i

Reply to
Ralf . K u s m i e r z

Hallo Ralf,

Am Fri, 14 Aug 2009 22:49:22 +0200 schrieb Ralf . K u s m i e r z:

nichts dagegen zu sagen!

Hast du irgend ein M$-Programm, welches VBA kann (Excel, Word, Outlook, Access ...)? Der Code funktioniert auch dort, natürlich auch nur, wenn die Sicherheitseinstellungen entsprechend angepasst sind.

Sub test() Dim strDest As String Dim objStream As Object Dim objHTTP As Object Dim strSource As String Dim i As Long Const adTypeBinary As Long = 1 Const adSaveCreateOverWrite As Long = 2

strDest = "c:\Test\map2008_" strSource = "

formatting link
" Set objStream = CreateObject("ADODB.Stream") objStream.Type = adTypeBinary

Set objHTTP = CreateObject("msxml2.XMLHTTP") With objHTTP For i = 1 To 2 .Open "GET", strSource & i & ".gif", False .send If .Status = 200 Then If .getResponseHeader("content-type") = "image/gif" Then objStream.Open objStream.write .responseBody objStream.savetofile strDest & i & ".gif", _ adSaveCreateOverWrite objStream.Close End If End If Next End With Set objStream = Nothing Set objHTTP = Nothing End Sub

Viele Grüße Michael

Reply to
Michael Schwimmer

Hallo Ralf,

Am Fri, 14 Aug 2009 23:12:04 +0200 schrieb Ralf . K u s m i e r z:

ich denke, du hast die Löcher auf deinem Rechner gestopft und jetzt möchtest du auf einmal, dass ein Script auf deine Festplatte zugreift?

Viele Grüße Michael

Reply to
Michael Schwimmer

Moin,

Ralf . K u s m i e r z schrub:

Folgendes C-Programm funktioniert bei mir (linux, wget installiert):

#include #include

int main() { int i; char getstring[1000]; for (i=0; i

Reply to
Roland Damm

"Ralf . K u s m i e r z" schrieb:

Als PHP-Code (dann direkt als Webseite aufrufbar):

Reply to
Felix Holdener

Hallo,

Am Fri, 14 Aug 2009 23:28:22 +0200 schrieb Michael Schwimmer:

um aus den heruntergeladenen Bildern wieder ein komplettes Bild zu machen, kann man auch VBA einsetzen. Folgendes funktioniert mit Excel (in ein Standardmodul):

Option Explicit Private Type GUID Data1 As Long Data2 As Integer Data3 As Integer Data4(7) As Byte End Type Private Type PICTDESC cbSize As Long picType As Long hImage As Long Data1 As Long Data2 As Long End Type Private Declare Function OleCreatePictureIndirect _ Lib "olepro32.dll" ( _ pPictDesc As PICTDESC, _ RefIID As GUID, _ ByVal fPictureOwnsHandle As Long, _ ppvObj As IPicture _ ) As Long Private Declare Function DeleteDC _ Lib "gdi32" ( _ ByVal hdc As Long _ ) As Long Private Declare Function CreateCompatibleDC _ Lib "gdi32" ( _ ByVal hdc As Long _ ) As Long Private Declare Function SelectObject _ Lib "gdi32" ( _ ByVal hdc As Long, _ ByVal hObject As Long _ ) As Long Private Declare Function CreateCompatibleBitmap _ Lib "gdi32" ( _ ByVal hdc As Long, _ ByVal nWidth As Long, _ ByVal nHeight As Long _ ) As Long Private Declare Function SetStretchBltMode _ Lib "gdi32" ( _ ByVal hdc As Long, _ ByVal nStretchMode As Long _ ) As Long Private Declare Function StretchBlt _ Lib "gdi32.dll" ( _ ByVal hdc As Long, _ ByVal x As Long, ByVal y As Long, _ ByVal nWidth As Long, ByVal nHeight As Long, _ ByVal hSrcDC As Long, _ ByVal xSrc As Long, ByVal ySrc As Long, _ ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, _ ByVal dwRop As Long _ ) As Long Private Declare Function DeleteObject _ Lib "gdi32" ( _ ByVal hObject As Long _ ) As Long Private Const SRCCOPY As Long = &HCC0020 Private Const vbPicTypeBitmap As Long = 1 Private Const cspHalftone As Long = 4

Public Sub MakeCard() Dim udtPicdesc As PICTDESC Dim IID_IDispatch As GUID Dim lngRet As Long Dim lngDestBMP As Long Dim strSource As String Dim strDestName As String Dim lngDestDC As Long Dim lngSourceDC As Long Dim lngObjOldSource As Long Dim lngObjOldDest As Long Dim objPic As IPictureDisp Dim objPicture As IPictureDisp Dim objDummy As IPictureDisp Dim i As Long Dim k As Long Dim m As Long Dim x As Long Dim y As Long On Error Resume Next x = 150 ' Original 200 y = 112 ' Original 150 strSource = "c:\Test\map2008_" strDestName = "c:\Test\Dest.bmp" ' 1x1 Pixelgroße Bitmap erzeugen Set objDummy = CreateDummyBMP ' DummyDC zum Blitten vom Quellbild erzeugen lngSourceDC = CreateCompatibleDC(0&) lngObjOldSource = SelectObject(lngSourceDC, objDummy.Handle) ' Das alte Objekt zurück ins DC SelectObject lngSourceDC, lngObjOldSource ' Einen DC erzeugen, der kompatibel zum Bildschirm ist lngDestDC = CreateCompatibleDC(0&) ' Dummy-Bitmap hineinstellen lngObjOldDest = SelectObject(lngDestDC, objDummy.Handle) ' Eine kompatible Bitmap in der gewünschten Größe erzeugen lngDestBMP = CreateCompatibleBitmap(lngDestDC, 48 * x, 46 * y) ' Das alte Objekt zurück ins DC SelectObject lngDestDC, lngObjOldDest ' Neue Bitmap ins ZielDC stellen, altes Objekt merken lngObjOldDest = SelectObject(lngDestDC, lngDestBMP) ' Qualität erhöhen SetStretchBltMode lngDestDC, cspHalftone

For k = 0 To 45 ' Y-Richtung For i = 1 To 48 ' X-Richtung ' Bildnummer m = (k * 48 + i + 103) Set objPicture = LoadPicture(strSource & m & ".gif") ' Bitmap ins QuellDC stellen, altes Objekt merken lngObjOldSource = SelectObject(lngSourceDC, _ objPicture.Handle) ' Bild in den ZielDC blitten StretchBlt lngDestDC, (i - 1) * x, k * y, x, y, _ lngSourceDC, 0, 0, 200, 150, SRCCOPY ' Alte Bitmap ins QuellDC stellen lngObjOldSource = SelectObject(lngSourceDC, _ lngObjOldSource) Next Next ' Schnittstellenkennung kPictureIID (GUID) With IID_IDispatch .Data1 = &H20400 .Data4(0) = &HC0 .Data4(7) = &H46 End With With udtPicdesc ' Struktur Picdesc ausfüllen .cbSize = Len(udtPicdesc) .picType = vbPicTypeBitmap .hImage = lngDestBMP End With

' Picture-Objekt erzeugen lngRet = OleCreatePictureIndirect( _ udtPicdesc, IID_IDispatch, 1&, objPic) ' Picture-Objekt abspeichern SavePicture objPic, strDestName ' Alte Bitmap zurück ins DC, DC zerstören SelectObject lngDestDC, lngObjOldDest DeleteDC lngDestDC DeleteDC lngSourceDC End Sub

Private Function CreateDummyBMP() As IPictureDisp Dim varBMP As Variant Dim abyteBMP() As Byte Dim i As Long Dim FF As Long Dim strDest As String strDest = Environ("Temp") & "\Dummy.bmp" If Dir(strDest) "" Then Kill strDest varBMP = Array( _ 66, 77, 58, 0, 0, 0, 0, 0, 0, 0, _ 54, 0, 0, 0, 40, 0, 0, 0, 1, 0, _ 0, 0, 1, 0, 0, 0, 1, 0, 24, 0, _ 0, 0, 0, 0, 4, 0, 0, 0, 196, 14, _ 0, 0, 196, 14, 0, 0, 0, 0, 0, 0, _ 0, 0, 0, 0, 255, 255, 255, 0) ReDim abyteBMP(0 To UBound(varBMP)) For i = 0 To UBound(varBMP) abyteBMP(i) = varBMP(i) Next FF = FreeFile Open strDest For Binary As FF Put #FF, , abyteBMP Close FF Set CreateDummyBMP = LoadPicture(strDest) End Function

9600x6900 Pixel sind als Bitmap doch etwas viel. Ich habe als Kompromiss 7200x5152 verwendet, mit einem Grafikprogramm in .JPG umgewandelt sind das dann noch etwa 8,3 MB. Wenn du mir eine Mail-Adresse zukommen lässt, kann ich dir die Datei auch senden, es sind gezippt aber trotzdem noch etwa 7,5 MB. Online stellen will ich die Karte aber aus rechtlichen Gründen nicht. Viele Grüße Michael
Reply to
Michael Schwimmer

X-No-Archive: Yes

begin quoting, Michael Schwimmer schrieb:

Na, alle bestimmt nicht, das ist aussichtslos.

Wo Problem?

Gruß aus Bremen Ralf

Reply to
Ralf . K u s m i e r z

X-No-Archive: Yes

begin quoting, Michael Schwimmer schrieb:

Falsche Frage: Alle Internetzugriffe von M$-Programmen erfolgen über den I-Exploder (das dämliche T-Online-Programm will den auch), und

*den* habe ich abgewürgt, also kann nichts dergleichen funktionieren. (Ich habe einfach die IE-Systemdateien gelöscht - das crasht zwar (bzw. mault), wenn die irgendein Scheixx-Programm aufruft, ist dafür aber absolut idiotensicher.)

Gruß aus Bremen Ralf

Reply to
Ralf . K u s m i e r z

X-No-Archive: Yes

begin quoting, Felix Holdener schrieb:

Was genau muß man damit machen? Wenn ich das als File.php abspeichere und das File dann mit dem Firefox öffnen will, dann fragt er mich, was er damit machen soll.

Gruß aus Bremen Ralf

Reply to
Ralf . K u s m i e r z

"Ralf . K u s m i e r z" schrieb:

Ouh, sorry, ich dachte das wäre schon als Allgemeinwissen überall eingedrungen...

Du brauchst einen Webserver mit PHP, irgendwo halt, die Datei muss natürlich durch den PHP-Parser. Du hast keinen Webspace im Netz? Die Datei dort hochladen und ausführen. Du kannst dann mit dem FF die ganze Seite lokal speichern.

Ansonsten schick mir ein PM, dann stelle ich es auf einem mir zugänglichen Server ins Netz und schick dir den Link. Oder ich schicke dir gleich die lokal zu speichernden Dateien.

Felix

Reply to
Felix Holdener

Hallo Ralf

Am Sat, 15 Aug 2009 04:28:18 +0200 schrieb Ralf . K u s m i e r z:

Gibt es das T-Online-Programm immer noch? Hatte ich letztes Jahrhundert mal installiert und sofort wieder runtergeschmissen.

Ich würde es aber trotzdem einmal probieren, wenn du die Möglichkeit dazu hast. Der Microsoft XML Parser (MSXML) wird ja schließlich auch von anderen Microsoft-Produkten benutzt, bzw. auch installiert. Und die grundlegenden API-Funktionen zum Erzeugen von Sockets und zum Internetzugriff sind sicher noch vorhanden, selbst wenn du die IE-Systemdateien gelöscht hast.

Viele Grüße Michael

Reply to
Michael Schwimmer

Hallo Ralf

Am Sat, 15 Aug 2009 04:24:17 +0200 schrieb Ralf . K u s m i e r z:

Ich empfinde es tatsächlich als Problem, wenn ein Script, welches in eine HTML-Seite eingebettet ist, auf meiner FP mit meinen Userrechten rumrödeln kann. Oder benutzt du eine VM?

Viele Grüße Michael

Reply to
Michael Schwimmer

X-No-Archive: Yes

begin quoting, Michael Schwimmer schrieb:

Weil?

Empfindest Du es auch als Problem, daß Dein Rechner die Anweisung "Format C:" ausführen kann?

Gruß aus Bremen Ralf

Reply to
Ralf . K u s m i e r z

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.