Проверка файла на соответствие формату

Программирование на Visual Basic for Applications
AHTOXA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 147
Зарегистрирован: 17.04.2003 (Чт) 13:38
Откуда: Россия, г. Петрозаводск

Проверка файла на соответствие формату

Сообщение AHTOXA » 07.05.2003 (Ср) 16:31

Как проверить соответсвует ли файл заданному формату?
Bandit

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 07.05.2003 (Ср) 16:36

Ну ты и спросил ;)

Открыть его, прочитать из оперделенного места сигнатуру и на е основе сделать вывод, что за файл.

AHTOXA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 147
Зарегистрирован: 17.04.2003 (Чт) 13:38
Откуда: Россия, г. Петрозаводск

Сообщение AHTOXA » 07.05.2003 (Ср) 16:39

Файл текстовый и имеет такую структуру:
Date пробел Time табуляция Value.
Требуется проверить будет-ли открываемый файл соответствовать данному формату.
Bandit

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 07.05.2003 (Ср) 16:43

Я что то не понимаю что ты вкладываешь в слова "соответствие формату в таком случае".

AHTOXA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 147
Зарегистрирован: 17.04.2003 (Чт) 13:38
Откуда: Россия, г. Петрозаводск

Сообщение AHTOXA » 07.05.2003 (Ср) 16:53

Ну имелось в виду формат структуры данных, содержащихся в некотором файле
Bandit

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 07.05.2003 (Ср) 17:15

Открыть и посмотреть :) И что занчит вообще "формат структуры данных"? Кол-во столбцов\строк? Тогда самый просто путь - открыть в Excel и потом посмотреть сколько их получится.

AHTOXA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 147
Зарегистрирован: 17.04.2003 (Чт) 13:38
Откуда: Россия, г. Петрозаводск

Сообщение AHTOXA » 07.05.2003 (Ср) 17:20

Блин, я же все понятно кажется объяснил, может и корявым языком.
А файл надо проверить до загрузки на страницу, если он не соответсвует формату, то выдать ошибку.
То есть, что-то типа того:
1) Открываем файл
2) Читаем 1 строку
3) Парсим ее

Символы в данной строке должны разделятся пробелом либо знаком табуляции
Bandit

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 07.05.2003 (Ср) 17:25

Ну ты, блин и спросил. Ну тогда наверное так:

Код: Выделить всё

function matchformat(fname as string, separator as string, mustcount as long) as boolean
dim st as string
close #1
open fname for input as #1
line input #1, st
close #1
matchformat =( (len(st) - len(replace(st,separator,"",,,vbtextcompare)))=mustcount*len(separator))
end function
Последний раз редактировалось RayShade 07.05.2003 (Ср) 18:00, всего редактировалось 1 раз.

AHTOXA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 147
Зарегистрирован: 17.04.2003 (Чт) 13:38
Откуда: Россия, г. Петрозаводск

Сообщение AHTOXA » 07.05.2003 (Ср) 17:31

Вот такой ответ я и хотел получить, а то уж думал придется бегать по строке и функцией mid вырезать символы и сравнивать их с разделителем. :lol:

И еще один вопрос, как мне знак табуляции запихать в строку?
Bandit

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 07.05.2003 (Ср) 17:36

В какую то определенную позицию?

Тогда так:



Код: Выделить всё
Mid(st,mypos,1)=chr(9)

AHTOXA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 147
Зарегистрирован: 17.04.2003 (Чт) 13:38
Откуда: Россия, г. Петрозаводск

Сообщение AHTOXA » 07.05.2003 (Ср) 17:39

Спасибо огромное.
Bandit

AHTOXA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 147
Зарегистрирован: 17.04.2003 (Чт) 13:38
Откуда: Россия, г. Петрозаводск

Сообщение AHTOXA » 07.05.2003 (Ср) 17:52

А как считать из файла определенную строку, допустим 2.
Bandit

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 07.05.2003 (Ср) 17:58

Код: Выделить всё
function getlinefromfile(fname as string, byval linenum as long) as string
dim st as string
close #1
open fname for input as #1
do until linenum = 0
line input #1,st
linenum = linenum - 1
loop
getlinefromfile = st
close #1
end function

AHTOXA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 147
Зарегистрирован: 17.04.2003 (Чт) 13:38
Откуда: Россия, г. Петрозаводск

Сообщение AHTOXA » 07.05.2003 (Ср) 18:03

Я имел в виду вытащить всю строку, т.е. если в ней допустим есть "," или какие другие нехорошие символы, то Input считывает строку до этого знака, а при следующем вызове после этого знака. Нужно чтобы он считывал всю строку до символа конца строки или перевода каретки.
Bandit

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 07.05.2003 (Ср) 18:05

Line Input считывает до vbCrLf

AHTOXA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 147
Зарегистрирован: 17.04.2003 (Чт) 13:38
Откуда: Россия, г. Петрозаводск

Сообщение AHTOXA » 07.05.2003 (Ср) 18:09

Чтобы я без тебя делал, дружище. :lol:
Bandit

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 07.05.2003 (Ср) 18:11

Вот уж, право, не знаю :)


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20

    TopList