У меня такая беда была, когда в файле был символ нуля. Chr(0), то есть. Такой файл не хочет лезть в строку.
Сравни как работают два кода.
Тут должно быть всё в порядке:
| Код | Private Sub Command1_Click() Dim s As String Open "c:\qq.qq" For Output As #1 Print #1, "qqq" Close #1
Open "c:\qq.qq" For Input As #1 s = Input(LOF(1), 1) Close #1
MsgBox s End Sub
|
Здесь должен лезть "input past end of file"
| Код |
Private Sub Command2_Click() Dim s As String Open "c:\qq.qq" For Output As #1 Print #1, "qqq" + Chr(0) + "qq" '!!!! Close #1
Open "c:\qq.qq" For Input As #1 s = Input(LOF(1), 1) Close #1
MsgBox s End Sub
|
Добавлено @ 08:53 А еще интересно, что способ Миханика (через FSO) ошибки не вызывает, но так как chr(0) означает конец строки, то часть файла ПОСЛЕ нулевого символа в прочитанной строке отсутствует. Вот посмотри:
| Код | Private Sub Command3_Click() Dim s As String Open "c:\qq.qq" For Output As #1 Print #1, "qqq" + Chr(0) + "wwww" Close #1
Dim fso As Object Dim f As Object Dim strStrings As String Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("c:\qq.qq", 1, True) strStrings = f.ReadAll() f.Close MsgBox strStrings 'только "qq", без "wwww" End Sub
|
В общем, вижу два выхода: либо как-то исключить из файла нулевой символ, либо читать его не в строку. |