Jest o wiele łatwiej wykorzystać czas pracy skryptowy, który jest instalowany domyślnie w systemie Windows
Po prostu przejdź do projektu Odnośnik i sprawdź środowisko wykonawcze Microsoft Scripting i kliknij OK.
Następnie można użyć tego kodu, który jest lepiej niż domyślnego pliku poleceń
Dim FSO As FileSystemObject
Dim TS As TextStream
Dim TempS As String
Dim Final As String
Set FSO = New FileSystemObject
Set TS = FSO.OpenTextFile("C:\Clients\Converter\Clockings.mis", ForReading)
'Use this for reading everything in one shot
Final = TS.ReadAll
'OR use this if you need to process each line
Do Until TS.AtEndOfStream
TempS = TS.ReadLine
Final = Final & TempS & vbCrLf
Loop
TS.Close
Set TS = FSO.OpenTextFile("C:\Clients\Converter\2.txt", ForWriting, True)
TS.Write Final
TS.Close
Set TS = Nothing
Set FSO = Nothing
chodzi o to, co jest nie tak z oryginalnego kodu tutaj czytasz każdy wiersz pliku tekstowego.
Input #iFileNo, sFileText
to tutaj piszesz go
Write #iFileNo, sFileText
sFileText jest zmienną ciąg tak, co się dzieje jest to, że za każdym razem można przeczytać, po prostu zastąpić zawartość sFileText z treścią wiersza ty po prostu czytaj.
Kiedy więc piszesz, wszystko, co piszesz, to ostatnia linia, którą czytasz, która jest prawdopodobnie pustą linią.
Dim sFileText As String
Dim sFinal as String
Dim iFileNo As Integer
iFileNo = FreeFile
Open "C:\Clients\Converter\Clockings.mis" For Input As #iFileNo
Do While Not EOF(iFileNo)
Input #iFileNo, sFileText
sFinal = sFinal & sFileText & vbCRLF
Loop
Close #iFileNo
iFileNo = FreeFile 'Don't assume the last file number is free to use
Open "C:\Clients\Converter\2.txt" For Output As #iFileNo
Write #iFileNo, sFinal
Close #iFileNo
Uwaga: nie trzeba wykonywać pętli do zapisu. sFinal zawiera pełny tekst pliku gotowy do napisania za jednym razem. Zauważ, że dane wejściowe odczytują LINIĘ na raz, więc każda linia dołączona do sFinal musi mieć dołączone CR i LF na końcu, aby mogły być poprawnie zapisane w systemie MS Windows. Inny system operacyjny może po prostu potrzebować LF (Chr $ (10)).
Jeśli potrzebujesz przetworzyć przychodzące dane, musisz zrobić coś takiego.
Dim sFileText As String
Dim sFinal as String
Dim vTemp as Variant
Dim iFileNo As Integer
Dim C as Collection
Dim R as Collection
Dim I as Long
Set C = New Collection
Set R = New Collection
iFileNo = FreeFile
Open "C:\Clients\Converter\Clockings.mis" For Input As #iFileNo
Do While Not EOF(iFileNo)
Input #iFileNo, sFileText
C.Add sFileText
Loop
Close #iFileNo
For Each vTemp in C
Process vTemp
Next sTemp
iFileNo = FreeFile
Open "C:\Clients\Converter\2.txt" For Output As #iFileNo
For Each vTemp in R
Write #iFileNo, vTemp & vbCRLF
Next sTemp
Close #iFileNo
Dobrze, jeśli plik mis sklepów jest to dane w postaci tekstu, można po prostu skopiować plik do 1.txt ... :-) –
nie ma nic w 1.txt bo piszesz do 2.txt ... –