Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Парсинг текстового файла?? / 15 сообщений из 15, страница 1 из 1
05.09.2006, 10:23
    #33964178
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг текстового файла??
Доброго дня.
Мне приходят текстовые файлы которые нужно парсить.
Читаю их построчно вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
	Const ForReading =  1 
	dim fso
	dim file
	dim string
	
	string = ""

	set fso = CreateObject("Scripting.FileSystemObject")
	set file = fso.OpenTextFile("D:\Test.txt", ForReading, False)

	Do While file.AtEndOfStream <> True
		string = file.Readline
                MsgBox string
		If Replace(string," ","") = "TestString" Then Exit Do
	Loop
Проблема... при проходе по файлу MsgBox выдаёт пустые строки (даже "Test String" на которой должен отвалиться не читает),
но если руками создать файл в блокноте и скопировать туда содержиммое исходника, то всё на ура проходит...
Вопрос в чём могут быть грабли и как можно поправить??
Спасибо.
З.Ы. Очень нужно :)
...
Рейтинг: 0 / 0
05.09.2006, 10:37
    #33964233
Парсинг текстового файла??
А почему ты не объявляешь типы переменных и имя переменной совпадает с названием типа String
попробуй так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
	Const ForReading =  1 
	dim fso as Object
	dim fl as Object
	dim str as String
	
	str = ""

	set fso = CreateObject("Scripting.FileSystemObject")
	set fl = fso.OpenTextFile("D:\Test.txt", ForReading, False)

	Do Until fl.AtEndOfStream 
		str = fl.Readline
                MsgBox str
		If Replace(str," ","") = "TestString" Then Exit Do
	Loop
...
Рейтинг: 0 / 0
05.09.2006, 10:40
    #33964246
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг текстового файла??
Попробую счаз...
Но как я постил выше всё работает ЕСЛИ СОЗДАТЬ ПУСТОЙ ФАЙЛ В БЛОКНОТЕ И КОПИРНУТЬ ТУДА ИСХОДНИК...
Т.е проблема судя по всему в кодировке, но не уверен.
Кто ни будь знает как решить??
...
Рейтинг: 0 / 0
05.09.2006, 10:47
    #33964274
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг текстового файла??
Да, уточнение... под исходником везде выше понимается исходный текстовый файл который нужно парсить :)
...
Рейтинг: 0 / 0
05.09.2006, 10:56
    #33964321
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг текстового файла??
Примеры файлов:
Вот этот исходный
...
Рейтинг: 0 / 0
05.09.2006, 10:57
    #33964327
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг текстового файла??
А вот этот созданный блокнотом
...
Рейтинг: 0 / 0
05.09.2006, 10:58
    #33964332
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг текстового файла??
В обоих файлах условие выхода из цыкла
Код: plaintext
If Replace(string," ","") = "15:4223Aug2006" Then Exit Do
...
Рейтинг: 0 / 0
05.09.2006, 11:14
    #33964399
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг текстового файла??
Как то криво файлы прицепились :(
Вот новая ссылка (архив rar 1Kb) Test.txt - исходный, TestN.txt - после блокнота.
...
Рейтинг: 0 / 0
05.09.2006, 11:58
    #33964620
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг текстового файла??
ХЕЛР мне! 8/
...
Рейтинг: 0 / 0
05.09.2006, 12:46
    #33964845
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг текстового файла??
Не уж то ни кто не знает??
...
Рейтинг: 0 / 0
05.09.2006, 12:49
    #33964870
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг текстового файла??
не буду говорить что идеал, но работает

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Public Sub Test()
    Const ForReading =  1 
    Dim fso As Object
    Dim file As Object
    Dim strIn As String
    Dim x() As Byte
    Dim strOut As String

    
    strIn = ""

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set file = fso.OpenTextFile("D:\3\Test.txt", ForReading, False)

    Do While file.AtEndOfStream <> True
        strIn = file.Readline
        strOut = ""
        x = StrConv(strIn, vbFromUnicode)
            For i =  1  To UBound(x) Step  2 
            strOut = strOut + Chr$(x(i))
        Next
        Debug.Print strOut
    Loop

End Sub
...
Рейтинг: 0 / 0
05.09.2006, 13:35
    #33965065
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг текстового файла??
Судя по тому, что первый код у этого экзальтированного Деда работал, он его запускал как VBScript. Поэтому твой вариант не катит.
...
Рейтинг: 0 / 0
05.09.2006, 14:24
    #33965243
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг текстового файла??
ну тогда еще проще

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    Const ForReading =  1 
    Const TristateTrue = - 1 
    Dim fso
    Dim fl
    Dim strin
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fl = fso.OpenTextFile("D:\3\Test.txt", ForReading, False, TristateTrue)

    Do While fl.AtEndOfStream <> True
        strin = fl.Readline
        MsgBox strin
    Loop
...
Рейтинг: 0 / 0
05.09.2006, 15:23
    #33965555
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг текстового файла??
to HandKot:
Спасибо. Просто с fso знаком не очень.

to Antonariy
Простите, но повода для хамства не давал...
...
Рейтинг: 0 / 0
05.09.2006, 17:10
    #33966072
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг текстового файла??
Прошу прощения. Что вас возмутило?
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Парсинг текстового файла?? / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]