Horst,
i hear you und bin ganz der gleichen Meinung.
Jedenfalls, als Tipp: Ich habe Dein Beispiel in Xide geholt, compiliert, die Fehler angesehen.
(Xide hat in Tools/Preferences/Advanced zwei SLEs für die Hilfe, im ersten steht bei mir:
https://learn.microsoft.com/en-us/dotnet/api/%value%
im zweiten
http://www.google.com/?gws_rd=ssl#q=%value%)
Cursor auf "Zipfile" gesetzt, F1, Firefox öffnet mit sich auf
https://learn.microsoft.com/en-us/dotne ... ew=net-7.0
und erstmal etwas gelesen.
Unter Remarks ist das " you must add a reference to the System.IO.Compression.FileSystem assembly in your project." drin, deshalb hast Du ja auch die Dll referenziert. Das ist aber der NAME der Dll. Nur MS weiß, warum das mitnichten bedeuten muss, dass es innen drin einen Typ (grob: eine Klasse) gleichen Namens geben wird - in diesem Fall gibt es ihn nicht, ergo der Compilerfehler, beim "USING System.IO.Compression.FileSystem". Da das "using" ja nur eine Bequemlichkeit ist, um nicht im Code die Langnamen schreiben zu müssen, habe ich es erstmal auskommentiert, um zu sehen, was dann passiert.
Erst kriegst Du den Static-Fehler um die Ohren, aber der zweite Fehler ist schon, das er nicht implizit aus einem Ziparchive ein Zipfile machen kann. Daraufhin hab ich das einfach mal in der Deklaration umgedreht, schwupp, gings.
Nein, nicht wirklich befriedigend, aber was ist schon perfekt. Man hangelt sich halt so hin
x# Zipfile lesen
Moderator: wriedmann
x# Zipfile lesen
Regards
Karl
(on Win8.1/64, Xide32 2.20, X#2.20.0.3)
Karl
(on Win8.1/64, Xide32 2.20, X#2.20.0.3)
x# Zipfile lesen
Falls mal einer das brauchen kann.
Öffnet ein Zipfile und liest die einzelnen 'text' files in einen string.
Öffnet ein Zipfile und liest die einzelnen 'text' files in einen string.
Code: Select all
USING System
USING System.Text
USING System.IO
USING System.IO.Compression
FUNCTION Start( ) AS VOID
LOCAL cZipFile := "ubs.zip" AS STRING
LOCAL oArchive AS ZipArchive
LOCAL entry AS ZipArchiveEntry
LOCAL cBuffer AS STRING
oArchive := ZipFile.OpenRead(WorkDir()+cZipFile)
FOREACH entry IN oArchive:Entries
Console.WriteLine(entry:Name)
cBuffer := System.IO.StreamReader{ entry:open (),System.Text.Encoding.UTF8}:ReadToEnd()
Console.WriteLine(cBuffer)
NEXT
oArchive:Dispose()
RETURN