/ Forside/ Teknologi / Udvikling / VB/Basic / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Internet File Transfer
Fra : shh
Vist : 579 gange
120 point
Dato : 19-06-02 11:18

Jeg har problemer med at StillExecuting ikke bliver ændret. I de kode eksempler jeg har set anvendes DoEvents, men det findes ikke VB Script. Hvad kan man anvende i stedet ??? Hvis jeg indsætter en MsgBox så virker det. Desværre kan jeg ikke bruge den metode da det skal køre som en batch process.

Her er Min kode:

dim fso, ftpo, Temp, FileList, TxtFile
url = "ftp://" & &(1:)
usr = &(2:)
pwd = &(3:)

FileList = ""
set fso = CreateObject("Scripting.FileSystemObject")
set ftpo = CreateObject("InetCtls.Inet.1")   'Msinet.ocx
With ftpo
.Cancel
.Protocol = icFTP
.URL = url
.UserName = usr
.Password = pwd
.Execute , "DIR"
End With
On Error Resume Next
MsgBox "Denne besked skal være der ......"

If ftpo.ResponseCode = 0 Then
&(6:) = " "
Else
&(6:) = "ERR"
End If

Select Case State
Case icResponseCompleted
   Temp = ftpo.GetChunk(1024)
   Do While Len(Temp) > 0
   FileList = FileList & Temp
   Temp = ftpo.GetChunk(1024)
   Loop
'MsgBox "Færdig med at hente DIR fra " & url
'MsgBox "FileList: " & FileList
Case icError
   MsgBox "Hent VejReister fra CPR bliver afsluttet pga. følgende fejl: " & vbCrLf & ftpo.icResponseCode & ":" & ftpo.icResponseInfo
Case Else
   MsgBox "Hent VejReister fra CPR bliver afsluttet nu, da den ikke blev færdig"
   ftpo.Cancel
End Select


&(5:) = FileList
If Not fso.FileExists (&(4:)) Then
   Set TxtFile = fso.CreateTextFile(&(4:))
End If

set TxtFile = fso.OpenTextFile(&(4:),2, True)
TxtFile.Write(FileList)
TxtFile.Close

FileArray = Split(FileList, vbCrLf)
FileArray = Filter(FileArray, ".")

MsgBox "Fundne filer: " & UBound(FileArray)

'ftpo.Execute , "BIN"


'While ftpo.StillExecuting
'MsgBox "Status på BIN: " & ftpo.ResponseCode & " " & ftpo.ResponseInfo & vbCrLf & "StillExecuting: " & ftpo.Stillexecuting
'Wend



For i = 1 To UBound(FileArray)
   If Len(FileArray(i)) > 0 Then
      FileArray(i) = Right(FileArray(i), 15)
      RemoteFile = FileArray(i)
      LocalFile = "c:\Download\VejReg\" & FileArray(i)
      MsgBox "File " & i & ": Fra : " & RemoteFile & " Til: " & LocalFile
      ftpo.Execute , "GET " & RemoteFile & " " & LocalFile
      On Error Resume Next
      Do Until Not ftpo.StillExecuting
         For count = 1 To 1000
         Next
         MsgBox "Status: " & State & "Kode: " & ftpo.ResponseCode & " " & ftpo.ResponseInfo & vbCrLf & "StillExecuting: " & ftpo.Stillexecuting
      Loop
      ftpo.Cancel
   End If
Next


Set ftpo = Nothing
Set fso = Nothing


 
 
Kommentar
Fra : shh


Dato : 19-06-02 15:19

Svaret jeg skal bruge bør indeholde den rigtige kode....

Kommentar
Fra : shh


Dato : 19-06-02 15:51

Min application er skrevet i et 4 gl. sprog der kan indkooperere VB Script, såjavascript er ikke en mulighed. Findes der ikke noget der tilsvarer DoEvents ???

Kommentar
Fra : shh


Dato : 19-06-02 15:51

Min applikation er skrevet i et 4 gl. sprog der kan indkooperere VB Script, såjavascript er ikke en mulighed. Findes der ikke noget der tilsvarer DoEvents ???

Kommentar
Fra : pete


Dato : 19-06-02 15:53

Du kan da ikke bare afvise svaret uden at sige hvorfor...? Forstår du det ikke eller hva...???

Accepteret svar
Fra : pete

Modtaget 120 point
Dato : 19-06-02 15:56

nej ikke i vbscript, ikke så vidt jeg ved...
Det du kan gøre er at lave et simplet com-objekt i VB som blot laver en doevents, og så kalde DET der hvor du vil have en DoEvents....

Kommentar
Fra : pete


Dato : 19-06-02 16:15

Jeg har lige lavet et sådant COM-objekt (dll), som jeg kan sende til dig hvis du er interesseret...

du bruger den ved at skrive :

set DOEObj = createobject("interrupter.DoEvents")
DOEObj .Do_events

Kommentar
Fra : shh


Dato : 19-06-02 16:22

Pete du må meget gerne sende mig den COM. Hvordan installeres/hvor skal den kopieres til osv. må meget erne fremgå.

Kommentar
Fra : pete


Dato : 19-06-02 16:24

OK, øhh jeg kan vist ikke se din email i dette system, vel..?

Kommentar
Fra : shh


Dato : 19-06-02 16:27

Sorry, den er soren.hjorth.hansen@get2net.dk

Kommentar
Fra : shh


Dato : 20-06-02 12:43

Alt virker fint nu, efter at have anvendt et COM objekt fra pete. Tak for det.

MEN: De filer jeg modtager indeholder volapyk eller noget der ligner. Se nedenfor.

Er der nogen der har en ide om hvad der går galt ? Hvis jeg kører FTP i et kommando-prompt virker det fint.

ðððòøøõðòòððññòðöòððññòðõððôðòõ÷òóøðððò@ðóò@ÓòððññòðöñðôôôóóðÈ¥“¢j@@@@@@@@@@@@@@ððôðòõ÷òóøðððñ@ðóñ@äòððññòðöñðôôôóóðÈ¥“¢j@@@@@@@@@@@@@@ððôðòöóñùóðððñ@ððù@äòððññòðöðøññôöòñǁ„¢£™¤—@@@@@@@@@@@@ððôðòöóòóññððò@ðóð@Óòððññòðöðøó÷ôöòñǁ„¢£™¤—@@@@@@@@@@@@ððôðòöóòóññððñ@ðòõ@äòððññòðöðøó÷ôöòñǁ„¢£™¤—@@@@@@@@@@@@ððôðòöóòôôùððñ@ðð÷@äòððññòðöðøò÷ôöòñǁ„¢£™¤—@@@@@@@@@@@@ððóðóôõôùñðððñ@ðñõ@äòððññòðöñöõòâ–„…™¤—@@@@@@@@@@@@@@@@@@@@@@@@@@@ððôðóôõôùñðððñ@ðñõ@äòððññòðöñöõòôóôðãj““j¢…@@@@@@@@@@@@@ððôðóôõõòóðððö@ðöö@Óñùùñðùòóñòððôó÷ð⣖™…@Ô…™“j¢…@@@@@@@ððóðôöñ÷÷óùððñ@ðð÷@äòððññòðöñðô÷å…¢£…™@ÒÀ™‚¨@@@@@@@@@@@@@@@@@@@@@@ððôðôöñ÷÷óùððñ@ðð÷@äòððññòðöñðô÷õóòðÁ‡…„™¤—@@@@@@@@@@@@@ððñðöññðùñðòððññòðöñôôôððððððððððððððððñù÷÷ñððõñôôó™…„¢£…•@Ӂ•„…¥…‘@@@™…„¢£…•@Ӂ•„…¥…‘@@@@@@@@@@@@@@@@@@@@@@@ððôð÷ðññõðõððó@ððó@äòððññòðöñóóôøôððÅ‚…“£–†£@@@@@@@@@@@@ððôð÷ðññõðõððõ@ðññ@äñùùóðùðùñõñôøôððÅ‚…“£–†£@@@@@@@@@@@@ððôð÷òù÷ôöõððñ@ððõ@äòððññòðöñòð÷øùùðÆЙ¤—@@@@@@@@@@@@@@@ððóð÷òùùôôøððñ@ðôñ@äòððññòðöñòñó|K@‘…™™…‡™¥@@@@@@@@@@@@@@@@@@@@@ððôð÷òùùôôøððñ@ðôñ@äòððññòðöñòñóøùððف•„…™¢@@@@@@@@@@@@@ððôðøð÷÷øùñððò@ðøò@ÓòððññòðöñôñøùóòðÈ‘““…™¤—@@@@@@@@@@@ððñðøòõðóðõòððññòðöññóóððððððððððððððððòððññòðöññóñ⣙•„¢£‰…•@@@@@@@@@⣙•„¢£‰…•@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ððóðøòõðóðõððò@ùùø@Óòððññòðöññóôå…¢£…™j@ȁ¥•@@@@@@@@@@@@@@@@@@@@@@ððôðøòõðóðõððò@ùùø@ÓòððññòðöññóôùùôðÓÀ¢j@@@@@@@@@@@@@@@@ððóðøòõðóðõððñ@ùùù@äòððññòðöññóôå…¢£…™j@ȁ¥•@@@@@@@@@@@@@@@@@@@@@@ððôðøòõðóðõððñ@ùùù@äòððññòðöññóôùùôðÓÀ¢j@@@@@@@@@@@@@@@@ùùùððððððòó

Kommentar
Fra : pete


Dato : 20-06-02 12:56

Kna du ikke lige prøve at vise præcis hvordan din kode ser ud nu...?

Kommentar
Fra : pete


Dato : 20-06-02 12:57

Kan du ikke lige prøve at vise præcis hvordan din kode ser ud nu...?

Kommentar
Fra : shh


Dato : 20-06-02 13:12

Her den:

Sub GetFile()
      ftpo.Cancel
      ftpo.Execute ftpo.URL, "GET " & RemoteFile & " " & LocalFile
      Do While ftpo.StillExecuting
         DOEObj.Do_events
      Loop
      ftpo.Cancel
End Sub


dim fso, ftpo, Temp, FileList, TxtFile
url = "ftp://" & &(1:)
usr = &(2:)
pwd = &(3:)

dim DOEObj
set DOEObj = createobject("interrupter.DoEvents")

FileList = ""
&(6:) = ""
set ftpo = CreateObject("InetCtls.Inet.1")   'Msinet.ocx
With ftpo
   .Cancel
   .AccessType = icUseDefault
   .URL = url
   .RequestTimeOut = 60
   .UserName = usr
   .Password = pwd
   .Execute , "DIR"
End With

Do While ftpo.StillExecuting
   DOEObj.Do_events
Loop

Select Case State
Case icResponseCompleted
   Temp = ftpo.GetChunk(1024)
   Do While Len(Temp) > 0
      FileList = FileList & Temp
      Temp = ftpo.GetChunk(1024)
   Loop
Case icError
   MsgBox "Hent VejReister fra CPR bliver afsluttet pga. følgende fejl: " & vbCrLf & ftpo.icResponseCode & ":" & ftpo.icResponseInfo
End Select

If &(4:) = "Y" Then
   set fso = CreateObject("Scripting.FileSystemObject")
   If Not fso.FileExists (&(5:)) Then
      Set TxtFile = fso.CreateTextFile(&(5:))
   End If
   set TxtFile = fso.OpenTextFile(&(5:),2, True)
End If

FileArray = Split(FileList, vbCrLf)
FileArray = Filter(FileArray, ".")

MsgBox "Fundne filer: " & UBound(FileArray)

For i = LBound(FileArray) To UBound(FileArray)
   If Len(FileArray(i)) > 0 Then
      FileArray(i) = Right(FileArray(i), 15)
      If &(4:) = "Y" Then
         TxtFile.WriteLine(FileArray(i))
      End If
      &(6:) = &(6:) & FileArray(i) & vbCrLf
      RemoteFile = FileArray(i)
      LocalFile = "c:\Download\VejReg\" & RemoteFile
'      MsgBox "File " & i & ": Fra : " & RemoteFile & " Til: " & LocalFile
      Call GetFile
   End If
Next
If &(4:) = "Y" Then
   TxtFile.Close
End If

ftpo.Execute ftpo.URL, "CLOSE"
Set ftpo = Nothing
Set fso = Nothing
set DOEObj = Nothing

Kommentar
Fra : pete


Dato : 20-06-02 13:32

Det eksempel du viste på outputtet, er det sådan der ser ud hvis du læser det ind i notepad (og er filen iøvrigt en almindelig text-fil, ellrr hvor kommer din fil fra...?)

Kommentar
Fra : shh


Dato : 20-06-02 13:37

Ja, jeg har blot lavet en copy/paste fra notepad.

Når jeg kører FTP fra en kommando prompt, får jeg en helt almindelig textfil. Den ser ca. sådan her ud:

0002885022001121120011210
001016999532001121110580000000000000000200007011057Statsudsendte Udsendte Af Den Danske Stat
00402171454002 024ZL2001121111353490Kvistgård
00402176023002 026ZL2001121111473490Kvistgård
00402596005002 004 L2001121108274600Køge
00305652210002 008 L199708280940Sønderby
00305652210014 020 L200112111133Sønderby
00305652210028 028 L199708280940Fugdal
00305652210032 034 L199708280940Fugdal
00305652210074 074 L199109231200Vesterhede
00405652210002 008 L1997082809407200Grindsted
00405652210014 020 L2001121111337200Grindsted
00405652210028 028 L1997082809407250Hejnsvig
00405652210032 034 L1997082809407250Hejnsvig
00405652210074 074 L1991092312007250Hejnsvig
00405654242002 018 L1999102712287250Hejnsvig
00405654242038 050 L1991092312007250Hejnsvig
00405659629002 014 L1991092312007250Hejnsvig
00405659629016 016 L1992021810237250Hejnsvig
00405659629020 020 L2001121109377250Hejnsvig
001081382182001121112530000000000000000200112111252Søparken Søparken
00308617895001 023 U200112111357Hornum
00408617895001 023 U2001121113579600Aars
99900000022


Kommentar
Fra : pete


Dato : 20-06-02 13:42

Hmm, det kunne umiddelbart ligne at msinet laver binary-transfer, men den vil normalt auto-detecte fil typen og hvis det er en ASCII-fil, vil den lave TEXT-transfer...jeg har ikke umiddelbart noget bud på, hvad det er der sker...du bør nok oprette et nyt spørgsmål på Kandu for at få nogle flere involverede... ;)

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177416
Tips : 31962
Nyheder : 719565
Indlæg : 6407858
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste