Ressourcen Datei wird nicht richtig entpackt

RE-DIK

Mitglied
Hallo Zusammen,

habe ein Problem das nicht leicht zu verstehen ist.

Mein Problem liegt beim Entpacken der Ressourcen Datei, aber auch nicht wirklich. Mit dem Editor von VB6 funktioniert es wenn ich mein Programm als .exe erstelle geht das Entpacken meiner Daten auch, aber die XML, XSL und WSDL Dateien bekommen etwas angehängt (etwas leeres oder so) und dann kann ich sie nicht in mein Programm mehr einlesen.

Fehler 91

Wenn ich meine WSDL mit dem Editor wieder bearbeite und die letzt Zeile (die ist leer) lösche dann funktioniert es.

Weiß jemand warum die Ressourcen verändert werden?

das Entpackt hab ich von hier und Funktioniert

http://www.tutorials.de/visual-basic-6-0/267746-ressource-dateien.html

Danke im Voraus
 
Kannst du mal dein Projekt hier hochladen (ohne persönliche Daten), damit man das am lebenden Objekt probieren kann?


Der Doc!
 
Das komplette Projekt nicht, aber den wichtigen Teilcode kann ich ja zeigen.

Dim BYTERessourcen() As Byte
Dim STRINGRessourcen As String

'Schleife zum entpacken der Ressourcen
For i= 101 To 115 Step 1
BYTERessourcen = LoadResData(i, "CUSTOM")
STRINGRessourcen = LoadResString(i)

'Ordner erstellen, wenn nicht vorhanden
If Filesize(APath) = -1 Then MkDir APath

'Daten speichern
Open APath & "/" & STRINGRessourcen For Binary As #1
Put #1, , BYTERessourcen()
Close #1
Next

Jetzt sind meine Daten alle im richtigen Ordner, aber alle meine Dateien sind anders als ich sie eingefügt hab.

Beispiel XML

<?xml version='1.0' encoding='UTF-8'?>

<root>
<wert1>1</wert1>
<wert2>2</wert2>
<wert3>3</wert3>
<wert4>4</wert4>
</root>
"...." und hier sind so Vierecke 'die ich nicht einfügen kann

wenn ich sie entferne dann geht es wieder.

im Anhang hab ich mein Projekt nur auf das Problem reduziert

Ziel ist es jetzt nur wenn man auf den Button klickt das die msgbox OK ausgibt.

in der .RES ist eine a.wsdl die beim Entpacken den Fehler trägt wenn man die Datei mit WordPad öffnet sieht man diese Vierecke.

alternative Lösung wäre für mich die Datei anschließend korrigieren lassen falls es keine normale Lösung gibt
 

Anhänge

  • Projekt.zip
    9,7 KB · Aufrufe: 24
Zuletzt bearbeitet:
mit dem Code

Dim sBuffer As String
Dim sArray() As String


Open App.Path & "/" & "a.wsdl" For Binary As #1
sBuffer = Space(LOF(1))
Get #1, , sBuffer
sArray = Split(sBuffer, vbCrLf)
Close #1

Open App.Path & "/" & "a.wsdl" For Output As #2
For i = 0 To UBound(sArray) - 1
Print #2, sArray(i)
Next i
Print #2, "</wsdl:definitions>"
Close #2

funktioniert es aber dann muss ich alle XML XSD XSL WSDL Dateien bearbeiten. Mir ist aufgefallen das es nur bei den Dateitypen diese Zeichen hinten auftauchen die txt exe und chm sind normal. Hatte da die Idee meine XML usw. Dateien als txt zu Speichen aber das funktioniert nicht.

@DrSoong Weist du warum die Dateien geändert werden?
 
Hallo,

hab mir mal dein Beispiel heruntergeladen und ausprobiert, bei mir schreibt er die Daten vollkommen normal auf die Platte. Ich kann da jetzt keinen Fehler erkennen, diese "Rechtecke" tauchen bei mir nicht auf. Wenn ich die von dir kompilierte EXE benutze, ist die Datei aber größer als wenn ich das ganze in der IDE laufen lasse.

Eventuell sind bei dir Einstellungen (Codepage, ...) verstellt, die sorgen dann für diese sonderbaren Zeichen.


Der Doc!
 
Hallo,

hast du es auch kompiliert und das mit der EXE ausprobiert?


Hab es auch ausprobiert im IDE und es funktioniert bei mir aber mit der EXE nicht. Wenn ich die Datei entpacken lasse mit dem IDE ist die Datei 815 kb groß und mit der EXE 816 kb warum auch immer.

Ich benutze Visual Basic 6.0 Enterprise Edition und habe nichts geändert oder verstellt.

Falls es am Codepage liegt weißt du wie ich das normalisieren kann?


Noch zur Info
http://65.54.166.122/kb/297112/DE

versuche jetzt den Hotfix von Microsoft zubekommen.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück