Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VB6 Quellcode ändern

Frage Entwicklung VB for Applications

Mitglied: lordofremixes

lordofremixes (Level 1) - Jetzt verbinden

01.07.2012, aktualisiert 18:13 Uhr, 3597 Aufrufe, 10 Kommentare

Hallo zusammen, habe ein WIRKLICH DRINGENDES PROBLEM:
wir haben von einem Programmierer, der unsere Firma verlassen hat, ein Programm im Einsatz, welches xml Dateien ändert, sodass unser ERP System die Datei versteht. (Programm fügt in eine einzeilige XML-Datei Zeileinumbrüche ein)
Im Quelltext muss nur eine kleine Änderung durchgeführt werden, dass funktioniert aber nicht, da eine Variable oder Formulardatei fehlt. Hoffe es kennt sich noch jemand damit aus.

Hallo zusammen,
wir haben von einem Programmierer, der unsere Firma verlassen hat, ein Programm im Einsatz, welches xml Dateien ändert, sodass unser ERP System die Datei versteht. (Programm fügt in eine einzeilige XML-Datei Zeileinumbrüche ein)

Jetzt muss dieses Programm (VB6 Programm ). Es muss nur der Rechnername von S05 auf S18 geändert werden.
Ich habe Visual Studio 2005 und Visual Basic 6 Enterprise zur Verfügung.
Ändere ich im Quelltext den Rechnername und will dann als .exe speichern, kommt bei beiden die Meldung,
Compile error , Variable not found (Zeile 294 ff.). Aber warum gibts es diese Variable bzw. Formular nicht?
Weiß jemand einen Rat? Zur Verfügung habe ich nur diese Dateien, welche eigentlich auch alle nötigen sein müssten:

xml2crlf.frm
xml2crlf.frx
xml2crlf.vbp
xml2crlf.vbw

Läuft das Programm dann kompiliert (wenn ich es schaffen sollte) eigentlich auch mit Windows Server 2008 R2 64bit und BizTalk Server?
Ich wollte es in VB.Net umwandeln, aber das scheitert auch an dieser DelDir.frm Datei. (Zeile 294 ff.)

Der Quelltext:

01.
Option Explicit 
02.
'Dieses Programm fügt in eine einzeilige XML-Datei Zeileinumbrüche ein 
03.
 
04.
 
05.
Dim Speed As Long 
06.
Dim Rechnername As String 
07.
Dim ViewModus As Boolean 
08.
Dim Rechner As String 
09.
Dim SourceDir(1) As String 
10.
Dim TargetDir(1) As String 
11.
Dim Erledigt(1) As String 
12.
 
13.
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As Any, ByVal lpParameters As Any, ByVal lpDirectory As Any, ByVal nShowCmd As Long) As Long 
14.
 
15.
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliSeconds As Long) 
16.
 
17.
Private Sub VerzeichnisAuslesen(i As Byte) 
18.
Dim v As Long 
19.
Dim cFile As String 
20.
    lstXMLsource(i).Clear 
21.
    v = 0 
22.
    cFile = Dir(SourceDir(i) & "*.XML") ' Alle Textdateien im Quellverzeichnis ausgeben 
23.
    Do While cFile <> "" And v < 1000 ' Wiederholen bis cFile="" 
24.
        lstXMLsource(i).AddItem (cFile) 
25.
        v = v + 1 
26.
        cFile = Dir ' Aufruf der Funktion ohne Parameter!! 
27.
    Loop 
28.
    lblSource(i).Caption = SourceDir(i) & " - " & lstXMLsource(i).ListCount & " Dateien" 
29.
    v = 0 
30.
    lstXMLtarget(i).Clear 
31.
    cFile = Dir(TargetDir(i) & "*.XML") ' Alle Textdateien im Zielverzeichnis ausgeben 
32.
    Do While cFile <> "" And v < 1000 ' Wiederholen bis cFile="" 
33.
        lstXMLtarget(i).AddItem (cFile) 
34.
        v = v + 1 
35.
        cFile = Dir ' Aufruf der Funktion ohne Parameter!! 
36.
    Loop 
37.
    lblTarget(i).Caption = TargetDir(i) & " - " & lstXMLtarget(i).ListCount & " Dateien" 
38.
    'lblAlt(i).Caption = "erledigt - " & lstXMLalt(i).ListCount & " Dateien" 
39.
    v = 0 
40.
    lstXMLalt(i).Clear 
41.
    cFile = Dir(Erledigt(i) & "*.XML") ' Alle Textdateien im Zielverzeichnis ausgeben 
42.
    Do While cFile <> "" And v < 1000 ' Wiederholen bis cFile="" 
43.
        lstXMLalt(i).AddItem (cFile) 
44.
        v = v + 1 
45.
        cFile = Dir ' Aufruf der Funktion ohne Parameter!! 
46.
    Loop 
47.
    lblAlt(i).Caption = Erledigt(i) & " - " & lstXMLalt(i).ListCount & " Dateien" 
48.
     
49.
End Sub 
50.
 
51.
Private Sub VerzeichnisVergleichen(l As Byte) 
52.
Dim i As Long 
53.
Dim j As Long 
54.
Dim a As Long 
55.
Dim b As Long 
56.
Dim c As Long 
57.
Dim konvertiert As Boolean 
58.
 
59.
konvertiert = False 
60.
    For i = 0 To lstXMLsource(l).ListCount - 1 
61.
        a = lstXMLsource(l).ListCount - 1 
62.
        b = lstXMLalt(l).ListCount - 1 
63.
        If b - a < a Then 
64.
            c = 0 
65.
        Else 
66.
            c = b - a 
67.
        End If 
68.
        For j = c To lstXMLalt(l).ListCount - 1 
69.
            If lstXMLsource(l).List(i) = lstXMLalt(l).List(j) Then konvertiert = True 
70.
        Next j 
71.
        If konvertiert = False Then 
72.
            XML_umwandeln lstXMLsource(l).List(i), l 
73.
            konvertiert = False 
74.
        Else 
75.
            konvertiert = False 
76.
        End If 
77.
    Next i 
78.
End Sub 
79.
 
80.
Private Sub XML_umwandeln(XML_Datei As String, m As Byte) 
81.
Dim Datei2 As String 
82.
Dim Datei3 As String 
83.
Dim Datei4 As String 
84.
Dim Datei5 As String 
85.
Dim StrAusgabe As String 
86.
Dim StrA As String 
87.
Dim Erkennen As Boolean 
88.
Dim i As Long 
89.
Dim j As Long 
90.
Dim k As Byte 
91.
Dim l As Byte 
92.
Dim n As Byte 
93.
Dim Zust800 As Boolean 
94.
Dim Zeichen(10000000) As String 
95.
 
96.
On Error GoTo EX 
97.
    StrAusgabe = "" 
98.
    StrA = "" 
99.
    Datei2 = SourceDir(m) & XML_Datei 
100.
    Datei3 = TargetDir(m) & XML_Datei 
101.
    Datei4 = Erledigt(m) & XML_Datei 
102.
    Datei5 = "C:\ErpInterface\COP.bat" 
103.
    'lstXMLalt(m).AddItem (XML_Datei) 
104.
    i = 0 
105.
    Zust800 = False 
106.
    Open Datei2 For Input As #2 
107.
        Do While Not EOF(2)    'Schleife bis Dateiende. 
108.
           Line Input #2, Zeichen(i) 
109.
           i = i + 1 
110.
        Loop 
111.
    Close #2 
112.
 
113.
    If i > 1 Then               'Wenn XML-Datei aus mehr als einer Zeile besteht, wird sie so wieder ausgegeben 
114.
        'Open Datei3 For Output As #3 
115.
        Open Datei4 For Output As #4 
116.
            For j = 0 To i 
117.
                'Print #3, Zeichen(j) 
118.
                Print #4, Zeichen(j) 
119.
            Next j 
120.
        'Close #3 
121.
        Close #4 
122.
    Else 
123.
        j = Len(Zeichen(0)) 
124.
        If chk800.Value = 1 Then 
125.
            For i = 1 To j 
126.
                If Mid(Zeichen(0), i, 4) = "T" & Chr$(34) & ">8" Then 
127.
                    Zust800 = True 
128.
                End If 
129.
            Next i 
130.
        End If 
131.
        Erkennen = True         '=> Suche nach einem neunen Erkennung String "<XYZ " 
132.
        'If Zust800 = False Then Open Datei3 For Output As #3 
133.
        Open Datei4 For Output As #4 
134.
        If Zust800 = True Then 
135.
            Print #4, 
136.
            Print #4, 
137.
            Print #4, "<! ! ! ! !         Pruefmittel, nicht importiert              ! ! ! ! !>" 
138.
            Print #4, 
139.
            Print #4, 
140.
        End If 
141.
            For i = 1 To j 
142.
                StrAusgabe = StrAusgabe & Mid(Zeichen(0), i, 1) 
143.
                If Erkennen = True Then StrA = StrA & Mid(Zeichen(0), i, 1) 
144.
                If Mid(Zeichen(0), i, 1) = "<" Then 
145.
                    StrA = "" 
146.
                    Erkennen = True 
147.
                End If 
148.
                If Mid(Zeichen(0), i, 1) = " " Then 
149.
                    k = Len(StrA) 
150.
                    Erkennen = False 
151.
                End If 
152.
                If Erkennen = False And Mid(Zeichen(0), i, 1) = "<" And Mid(Zeichen(0), i, 2) <> "</" Then 
153.
                    Erkennen = True 
154.
                End If 
155.
      
156.
                If i > 5 Then 
157.
                    If Mid(Zeichen(0), i - 1, 2) = "?>" _ 
158.
                       Or Mid(Zeichen(0), i, 2) = "><" And Mid(Zeichen(0), i + 2, 1) <> "/" _ 
159.
                       Or (Mid(Zeichen(0), i, 1) = ">" And Erkennen = True) _ 
160.
                       And (Mid(Zeichen(0), i - 5, 6) <> "sCode>" And i > 11) _ 
161.
                       And (Mid(Zeichen(0), i - 5, 6) <> "ssage>" And i > 11) Then 
162.
                       If chkGew.Value = 1 And Left(StrAusgabe, 4) = "<gew" Then 
163.
                        For n = 30 To 40 
164.
                            If Mid(StrAusgabe, n, 1) = "<" Then 
165.
                                'alles ok, String kann ganz normal geschrieben werden 
166.
                                'If Zust800 = False Then Print #3, StrAusgabe 
167.
                                Print #4, StrAusgabe 
168.
                                Exit For 
169.
                            End If 
170.
                            If Mid(StrAusgabe, n, 1) = "E" Then 
171.
                                'Gewicht wird auf NULL gesetzt 
172.
                                '<gewicht FIELDNAME="NFT_FLO0">8.4E-05</gewicht> 
173.
                                '123456789012345678901234567890 
174.
                                'If Zust800 = False Then Print #3, "<gewicht FIELDNAME=" & Chr$(34) & "NFT_FLO0" & Chr$(34) & ">0</gewicht>" 
175.
                                Print #4, "<gewicht FIELDNAME=" & Chr$(34) & "NFT_FLO0" & Chr$(34) & ">0</gewicht>" 
176.
                                Exit For 
177.
                            End If 
178.
                        Next n 
179.
                       Else 
180.
                        'If Zust800 = False Then Print #3, StrAusgabe 
181.
                        Print #4, StrAusgabe 
182.
                       End If 
183.
                        StrAusgabe = "" 
184.
                        Erkennen = False 
185.
                    End If 
186.
                End If 
187.
            Next i 
188.
        'f Zust800 = False Then Close #3 
189.
        Close #4 
190.
    End If 
191.
If Zust800 = False Then Shell "cmd /c copy " & Datei4 & " " & Datei3, vbHide 
192.
Exit Sub 
193.
EX: 
194.
Close #2 
195.
'Close #3 
196.
Close #4 
197.
End Sub 
198.
 
199.
Private Sub cmdChangeDir_Click() 
200.
        If SourceDir(0) = Rechner & "\ErpInterface\PDMRequest\" Then 
201.
            SourceDir(0) = Rechner & "\ErpInterface\ERPRequestResponse\" 
202.
            TargetDir(0) = Rechner & "\ErpInterface\TSRequestResponse\" 
203.
        Else 
204.
            SourceDir(0) = Rechner & "\ErpInterface\PDMRequest\" 
205.
            TargetDir(0) = Rechner & "\ErpInterface\TSRequest\" 
206.
        End If 
207.
        lblSource(0).Caption = SourceDir(0) 
208.
        lblTarget(0).Caption = TargetDir(0) 
209.
        lstXMLalt(0).Clear 
210.
        lstXMLsource(0).Clear 
211.
        lstXMLtarget(0).Clear 
212.
End Sub 
213.
 
214.
Private Sub cmdDELA_Click(Index As Integer) 
215.
On Error GoTo EX 
216.
    If Index = 0 Then Shell "cmd /c del /Q " & SourceDir(0) & "*.*", vbHide 
217.
    If Index = 1 Then Shell "cmd /c del /Q " & TargetDir(0) & "*.*", vbHide 
218.
    If Index = 2 Then Shell "cmd /c del /Q " & Erledigt(0) & "*.*", vbHide 
219.
    If Index = 3 Then Shell "cmd /c del /Q " & SourceDir(1) & "*.*", vbHide 
220.
    If Index = 4 Then Shell "cmd /c del /Q " & TargetDir(1) & "*.*", vbHide 
221.
    If Index = 5 Then Shell "cmd /c del /Q " & Erledigt(1) & "*.*", vbHide 
222.
Exit Sub 
223.
EX: 
224.
End Sub 
225.
 
226.
Private Sub cmdDELM_Click(Index As Integer) 
227.
    Dim i As Long 
228.
On Error GoTo EX 
229.
    If Index = 0 Then 
230.
        For i = 0 To lstXMLsource(0).ListCount - 1 
231.
            If lstXMLsource(0).Selected(i) Then 
232.
                lstXMLsource(0).RemoveItem (i) 
233.
                Shell "cmd /c del /Q " & SourceDir(0) & lstXMLsource(0).List(i) 
234.
                Exit For 
235.
            End If 
236.
        Next i 
237.
    End If 
238.
    If Index = 1 Then 
239.
        For i = 0 To lstXMLtarget(0).ListCount - 1 
240.
            If lstXMLtarget(0).Selected(i) Then 
241.
                lstXMLtarget(0).RemoveItem (i) 
242.
                Shell "cmd /c del /Q " & TargetDir(0) & lstXMLtarget(0).List(i) 
243.
                Exit For 
244.
            End If 
245.
        Next i 
246.
    End If 
247.
    If Index = 2 Then 
248.
        For i = 0 To lstXMLalt(0).ListCount - 1 
249.
            If lstXMLalt(0).Selected(i) Then 
250.
                lstXMLalt(0).RemoveItem (i) 
251.
                Shell "cmd /c del /Q " & Erledigt(0) & lstXMLalt(0).List(i) 
252.
                Exit For 
253.
            End If 
254.
        Next i 
255.
    End If 
256.
     
257.
    If Index = 3 Then 
258.
        For i = 0 To lstXMLsource(1).ListCount - 1 
259.
            If lstXMLsource(1).Selected(i) Then 
260.
                lstXMLsource(1).RemoveItem (i) 
261.
                Shell "cmd /c del /Q " & SourceDir(1) & lstXMLsource(1).List(i) 
262.
                Exit For 
263.
            End If 
264.
        Next i 
265.
    End If 
266.
    If Index = 4 Then 
267.
        For i = 0 To lstXMLtarget(1).ListCount - 1 
268.
            If lstXMLtarget(1).Selected(i) Then 
269.
                lstXMLtarget(1).RemoveItem (i) 
270.
                Shell "cmd /c del /Q " & TargetDir(1) & lstXMLtarget(1).List(i) 
271.
                Exit For 
272.
            End If 
273.
        Next i 
274.
    End If 
275.
    If Index = 5 Then 
276.
        For i = 0 To lstXMLalt(1).ListCount - 1 
277.
            If lstXMLalt(1).Selected(i) Then 
278.
                lstXMLalt(1).RemoveItem (i) 
279.
                Shell "cmd /c del /Q " & Erledigt(1) & lstXMLalt(1).List(i) 
280.
                Exit For 
281.
            End If 
282.
        Next i 
283.
    End If 
284.
Exit Sub 
285.
EX: 
286.
End Sub 
287.
 
288.
Private Sub Form_Unload(Cancel As Integer) 
289.
End 
290.
End Sub 
291.
 
292.
Private Sub VerzeichnisseLoeschen() 
293.
On Error GoTo EX 
294.
    If frmDelDir.chkDEL(0).Value = 1 Then Shell "cmd /c del /Q " & SourceDir(0) & "*.*", vbHide 
295.
    If frmDelDir.chkDEL(1).Value = 1 Then Shell "cmd /c del /Q " & TargetDir(0) & "*.*", vbHide 
296.
    If frmDelDir.chkDEL(2).Value = 1 Then Shell "cmd /c del /Q " & Erledigt(0) & "*.*", vbHide 
297.
    If frmDelDir.chkDEL(3).Value = 1 Then Shell "cmd /c del /Q " & SourceDir(1) & "*.*", vbHide 
298.
    If frmDelDir.chkDEL(4).Value = 1 Then Shell "cmd /c del /Q " & TargetDir(1) & "*.*", vbHide 
299.
    If frmDelDir.chkDEL(5).Value = 1 Then Shell "cmd /c del /Q " & Erledigt(1) & "*.*", vbHide 
300.
Exit Sub 
301.
EX: 
302.
End Sub 
303.
 
304.
'Private Sub lstXMLalt_Click(Index As Integer) 
305.
'Dim i As Long 
306.
'Dim Datei As String 
307.
'Dim Info As String 
308.
'On Error GoTo EX 
309.
'If Index = 0 Then 
310.
'    For i = 0 To lstXMLalt(Index).ListCount - 1 
311.
'        If lstXMLalt(Index).Selected(i) Then 
312.
'            Datei = Left(lstXMLalt(Index).List(i), 40) 
313.
'            Datei = Erledigt(Index) & Datei 
314.
'        End If 
315.
'    Next i 
316.
'    Open Datei For Input As #2 
317.
'        Do While Not EOF(2)    'Schleife bis Dateiende. 
318.
'           Line Input #2, Info 
319.
'        Loop 
320.
'    Close #2 
321.
'End If 
322.
'Exit Sub 
323.
'EX: 
324.
'End Sub 
325.
 
326.
Private Sub lstXMLalt_DblClick(Index As Integer) 
327.
Dim i As Long 
328.
Dim Datei As String 
329.
On Error GoTo EX 
330.
For i = 0 To lstXMLalt(Index).ListCount - 1 
331.
    If lstXMLalt(Index).Selected(i) Then 
332.
        Datei = Left(lstXMLalt(Index).List(i), 40) 
333.
        ShellExecute Me.hWnd, "Open", Erledigt(Index) & Datei, "", App.Path, 1 
334.
    End If 
335.
Next i 
336.
Exit Sub 
337.
EX: 
338.
End Sub 
339.
 
340.
Private Sub lstXMLsource_dblClick(Index As Integer) 
341.
Dim i As Long 
342.
Dim Datei As String 
343.
On Error GoTo EX 
344.
For i = 0 To lstXMLsource(Index).ListCount - 1 
345.
    If lstXMLsource(Index).Selected(i) Then 
346.
        Datei = (Left(lstXMLsource(Index).List(i), 40)) 
347.
        'ShellExecute Me.hWnd, "Open", SourceDir(Index) & lstXMLsource(Index).List(i), "", App.Path, 1 
348.
        ShellExecute Me.hWnd, "Open", SourceDir(Index) & Datei, "", App.Path, 1 
349.
        'MsgBox (SourceDir(Index) & Datei) 
350.
    End If 
351.
Next i 
352.
Exit Sub 
353.
EX: 
354.
End Sub 
355.
 
356.
Private Sub lstXMLtarget_dblClick(Index As Integer) 
357.
Dim i As Long 
358.
Dim Datei As String 
359.
On Error GoTo EX 
360.
For i = 0 To lstXMLtarget(Index).ListCount - 1 
361.
    If lstXMLtarget(Index).Selected(i) Then 
362.
        Datei = Left(lstXMLtarget(Index).List(i), 40) 
363.
        ShellExecute Me.hWnd, "Open", TargetDir(Index) & Datei, "", App.Path, 1 
364.
    End If 
365.
Next i 
366.
Exit Sub 
367.
EX: 
368.
End Sub 
369.
 
370.
Private Sub tmrXML_Timer() 
371.
    VerzeichnisAuslesen 0 
372.
    If ViewModus = False Then VerzeichnisVergleichen 0 
373.
    VerzeichnisAuslesen 1 
374.
    If ViewModus = False Then VerzeichnisVergleichen 1 
375.
End Sub 
376.
 
377.
Private Sub Form_Load() 
378.
     
379.
    ViewModus = False 
380.
    Rechnername = Environ("COMPUTERNAME") 
381.
 
382.
    'Rechnername = "S05"      'Zum Testen um S05 vorzuspielen 
383.
    frmXML2CRLF.Caption = frmXML2CRLF.Caption & "    Rechner: " & Rechnername 
384.
     
385.
    If Command() = "v" Or Command() = "V" Or Rechnername <> "S05" Then 
386.
        ViewModus = True 
387.
        MsgBox ("Das Programm läuft nur im View-Modus!") 
388.
        frmXML2CRLF.Caption = frmXML2CRLF.Caption & "    ! View Modus !" 
389.
        Speed = 10000    'Timer 10 Sekunden 
390.
        txtSpeed.Text = Speed 
391.
    Else 
392.
        Speed = 2500    'Timer 2,5 Sekunden 
393.
        txtSpeed.Text = Speed 
394.
        If App.PrevInstance = True And Rechnername = "S05" Then 
395.
            'MsgBox ("Das Programm läuft nur im View-Modus!") 
396.
            End 
397.
        End If 
398.
    End If 
399.
     
400.
    Rechner = "C:"        'Zum Testen ohne Netz 
401.
    'Rechner = "\\s05"    'Echteinstellung 
402.
     
403.
    SourceDir(0) = Rechner & "\ErpInterface\PDMRequest\" 
404.
    TargetDir(0) = Rechner & "\ErpInterface\TSRequest\" 
405.
    Erledigt(0) = Rechner & "\ErpInterface\OKRequest\" 
406.
    SourceDir(1) = Rechner & "\ErpInterface\ERPRequestResponse\" 
407.
    TargetDir(1) = Rechner & "\ErpInterface\TSRequestResponse\" 
408.
    Erledigt(1) = Rechner & "\ErpInterface\OKRequestResponse\" 
409.
     
410.
    lblSource(0).Caption = SourceDir(0) 
411.
    lblTarget(0).Caption = TargetDir(0) 
412.
    lblSource(1).Caption = SourceDir(1) 
413.
    lblTarget(1).Caption = TargetDir(1) 
414.
     
415.
'    If Command() = "d" Or Command() = "D" Or ViewModus = False Then 
416.
'        frmXML2CRLF.Visible = True 
417.
'        'VerzeichnisseLoeschen 
418.
'    End If 
419.
    tmrXML.Interval = Speed 
420.
 
421.
End Sub


Mitglied: 76109
01.07.2012 um 19:13 Uhr
Hallo lordofremixes!

Offensichtlich fehlt Dir die betreffende Datei?

Notfalls, könntest Du versuchen, ob Du die *.Exe nicht einfach mit einem Hex-Editor entsprechend änderst. Sofern das Programm keine Checksumme berechnet und Du alle betreffenden Stellen findest, sehe ich da kein Problem, da sich ja die Anzahl der Zeichen nicht ändert

Gruß Dieter
Bitte warten ..
Mitglied: lordofremixes
01.07.2012 um 19:47 Uhr
Hallo didi1954,

ich habe die entsprechenden Zeilen :

Private Sub VerzeichnisseLoeschen()
On Error GoTo EX
If frmDelDir.chkDEL(0).Value = 1 Then Shell "cmd /c del /Q " & SourceDir(0) & "*.*", vbHide
If frmDelDir.chkDEL(1).Value = 1 Then Shell "cmd /c del /Q " & TargetDir(0) & "*.*", vbHide
If frmDelDir.chkDEL(2).Value = 1 Then Shell "cmd /c del /Q " & Erledigt(0) & "*.*", vbHide
If frmDelDir.chkDEL(3).Value = 1 Then Shell "cmd /c del /Q " & SourceDir(1) & "*.*", vbHide
If frmDelDir.chkDEL(4).Value = 1 Then Shell "cmd /c del /Q " & TargetDir(1) & "*.*", vbHide
If frmDelDir.chkDEL(5).Value = 1 Then Shell "cmd /c del /Q " & Erledigt(1) & "*.*", vbHide
Exit Sub
EX:
End Sub

auskommentiert und die Werte von s05 auf s18 geändert. Es läuft.
Ich glaube aber dass im Produktivbetrieb irgendetwas nicht laufen wird, da die Verzeichnisse ja nicht gelöscht werden.

Oben steht auch noch: (Zeile 214-224)

Private Sub cmdDELA_Click(Index As Integer)
On Error GoTo EX
If Index = 0 Then Shell "cmd /c del /Q " & SourceDir(0) & "*.*", vbHide
If Index = 1 Then Shell "cmd /c del /Q " & TargetDir(0) & "*.*", vbHide
If Index = 2 Then Shell "cmd /c del /Q " & Erledigt(0) & "*.*", vbHide
If Index = 3 Then Shell "cmd /c del /Q " & SourceDir(1) & "*.*", vbHide
If Index = 4 Then Shell "cmd /c del /Q " & TargetDir(1) & "*.*", vbHide
If Index = 5 Then Shell "cmd /c del /Q " & Erledigt(1) & "*.*", vbHide
Exit Sub
EX:
End Sub

Aber es gib in diesem Formular nichts zu klicken um etwas zu löschen. Mir scheint es jetzt auch so, als ob der Timer von 25ooms nicht mehr funktioniert.

Deine Idee hört sich wirklich gut an. Die Anzahl der zeichen bleibt auch jeden Fall gleich und eine Checksumme gibt es auch nicht (vermute ich ziemlich sicher).

Aber wie funktioniert das bzw. wie mache ich das?

Hab die Datei mit mx-hex-editor geöffnet, tausende von hexzahlen. Wie kann ich da nun was finden bzw. suchen (s05 und einmal S05) und ersetzen?

Gruß
lordofremixes
lordofremixes
Bitte warten ..
Mitglied: rubberman
01.07.2012, aktualisiert um 21:10 Uhr
Hallo lordofremixes.

Zitat von lordofremixes:
Hab die Datei mit mx-hex-editor geöffnet, tausende von hexzahlen. Wie kann ich da nun was finden bzw. suchen (s05 und einmal
S05) und ersetzen?

Wichtig ist in erster Linie dass du mit einer Kopie der Datei experimentierst. Es besteht immer die Gefahr dass du das Programm damit zerschießt.

Konstante Zeichenfolgen sind meist auch im Binary als Klartext zu finden, darum sollte ein Ersetzen des Textes möglich sein.
Im MX Menüpunkt "Suchen" > "Suchen & Ersetzen" > Tab "Text"

Grüße
rubberman
Bitte warten ..
Mitglied: lordofremixes
01.07.2012 um 21:38 Uhr
Hallo rubberman,

hab es mit der Kopie ausprobiert.
Durch die Suche wird nichts gefunden. Leider.

Gruß
lordofremixes
Bitte warten ..
Mitglied: rubberman
01.07.2012, aktualisiert um 22:58 Uhr
Hallo lordofremixes.

Es ist durchaus wahrscheinlich, dass die Zeichenfolgen Unicode-encodiert vorliegen.
In diesem Fall entspricht s05 = HEX 730030003500 und S05 = HEX 530030003500.
s18 wäre dann 730031003800 und S18 entspräche 530031003800.


Grüße
rubberman
Bitte warten ..
Mitglied: lordofremixes
01.07.2012 um 23:33 Uhr
Hallo rubberman,

S05 = HEX 530030003500 wird nur einmal gefunden, und das ist nur der Text Rechner = S05 welches ich im Hexeditor auch rechts im Hexeditor sehe.

Schade, sonst noch ne Idee?

Gruß
lordofremixes
Bitte warten ..
Mitglied: 76109
02.07.2012 um 00:18 Uhr
Hallo lordofremixes!

S05 = HEX 530030003500 wird nur einmal gefunden, und das ist nur der Text
Rechner = S05 welches ich im Hexeditor auch rechts im Hexeditor sehe.
Es kann durchaus sein, dass der Wert 'S05' nur einmal an einer Speicher-Adresse im Datensegment abgelegt wird und an gegebener Stelle eben diese Speicher-Adresse zugwiesen wird.

Auf jeden Fall musst Du aber auch noch nach s05 = HEX '730030003500 ' suchen, weil bei dieser Suchmethode zwischen Groß-/Kleinschreibung unterschieden wird

Gruß Dieter
Bitte warten ..
Mitglied: lordofremixes
02.07.2012 um 10:41 Uhr
Hallo didi1954,

hab natürlich nach beidem gesucht. Und die Speicheradresse ist nicht nur einmal angelegt, das weiß ich, weil es nicht per Variable deklariert wurde.
Trotzdessen probiere ich jetzt mal die Datei mit dem ausgeklammerten Bereich.

Gruß
Stefan Schiffner
Bitte warten ..
Mitglied: 76109
02.07.2012, aktualisiert um 11:32 Uhr
Hallo Stefan!

Das ist mir schon klar, dass der String nicht als Variable deklariert wurde, aber Du musst das aus programmtechnischer Sicht sehen. Ein String kann nicht direkt im ausführenden Programmcode (Code-Segement) stehen. Der Programmcode kennt nur einen festvorgegeben Befehlssatz und Speicheradressen d.h. der String befindet sich im Datensegment und im Programm-Code die Speicheradresse des Strings. Ein Compiler prüft in der Regel, ob ein String mehrmals vorkommt und speichert in nicht x-mal, wenn einmal reicht.

Falls es in Deiner Programmierumgebung möglich ist, dass der Compiler nur eine Assembler-Datei anstelle der fertigen *.Exe erzeugt, dann schau Dir den Assemblercode an bzw. suche in dieser Datei nach dem String?

Gruß Dieter
Bitte warten ..
Mitglied: lordofremixes
02.07.2012 um 14:32 Uhr
Hallo didi1954,

hab ich probiert. Das Programm wird dann aber im ViewModus (da noch irgendwo s05 steht) gestartet.

Ich hab mir noch was anderes überlegt:

' Private Sub VerzeichnisseLoeschen()
' On Error GoTo EX
' If frmDelDir.chkDEL(0).Value = 1 Then Shell "cmd /c del /Q " & SourceDir(0) & "*.*", vbHide
' If frmDelDir.chkDEL(1).Value = 1 Then Shell "cmd /c del /Q " & TargetDir(0) & "*.*", vbHide
' If frmDelDir.chkDEL(2).Value = 1 Then Shell "cmd /c del /Q " & Erledigt(0) & "*.*", vbHide
' If frmDelDir.chkDEL(3).Value = 1 Then Shell "cmd /c del /Q " & SourceDir(1) & "*.*", vbHide
' If frmDelDir.chkDEL(4).Value = 1 Then Shell "cmd /c del /Q " & TargetDir(1) & "*.*", vbHide
' If frmDelDir.chkDEL(5).Value = 1 Then Shell "cmd /c del /Q " & Erledigt(1) & "*.*", vbHide
' Exit Sub
' EX:
' End Sub

um diesen Code geht es

ich müsste das nur so anpassen:

lstXMLsource(0).value = 1 Then Shell "cmd /c del /Q " & SourceDir(0) & "*.*", vbHide
lstXMLsource(1).value = 1 Then Shell "cmd /c del /Q " & SourceDir(0) & "*.*", vbHide
lstXMLtarget(0).value = 1 Then Shell "cmd /c del /Q " & SourceDir(0) & "*.*", vbHide
lstXMLtarget(1).value = 1 Then Shell "cmd /c del /Q " & SourceDir(0) & "*.*", vbHide

lstXMLsource(0)
lstXMLsource(1)
lstXMLtarget(0)
lstXMLtarget(1)

Diese Felder müssten überprüft werden, ob in Ihnen etwas steht und dann das dazugehörige Verzeichnis gelöscht werden.
Weiß zufällig jemand wie man das anpassen kann?
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Server
gelöst Word 2010 : Absatz - Abstand per GPO ändern (3)

Frage von johanna-p zum Thema Windows Server ...

Exchange Server
Exchange 2013, Outlook 2010 Standard-Absendeadresse ändern (4)

Frage von ingoue zum Thema Exchange Server ...

E-Mail
gelöst GMail: Anzeige der Mailübersicht ändern (7)

Frage von honeybee zum Thema E-Mail ...

Exchange Server
Exchange 2013 - Primäre eMail Adresse ändern (7)

Frage von staybb zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...