Автор | Сообщение |
|
Отправлено: 28.05.10 17:30. Заголовок: CR-LF
Летом 2009 года, работая с каротажной плюшкой, написанной иным человеком (причем еще в 1996 году), столкнулся с тем, что на некоторых файлах выдавала она непонятные и невразумительне ошибки (ошибка 62: Input past End Of File). Выяснилось, что в некоторых файлах неправильно оформлены концы строк. В текстовых файлах строки должны кончаться последовательностью символов CR и LF (десятичные коды ASCII 13 и 10). А в некоторых LASах был только LF. В результате первый же Line Input считывал в переменную весь файл и естественно следующий Line Input приводил к ошибке. Для обхода этой фигни была написана мааааленькая процедурка, переписывающая файл в правильном виде: Sub CRLF(MyFile as String) 'расстановка CR-LF для корректной работы текстовых процедур '(c)rcgoff 2009 Dim tempstr, tempstr2 As String Open MyFile For Input As #1 Line Input #1, tempstr If LOF(1) <> Len(tempstr) Then Close #1: Exit Sub 'если длины не равны, значит корректно считалась одна строка и файл нормальный tempstr2 = Replace(tempstr, Chr(10), Chr(13) + Chr(10)) Close #1 Kill MyFile Open MyFile For Output As #1 Print #1, tempstr2 Close #1 End Sub
|
|
Профиль
Цитата
Ответить
|
Ответов - 1
[только новые]
|
|
|
Отправлено: 30.08.16 12:04. Заголовок: Поставил в заголовок..
Поставил в заголовок указание на имя файла. Хе-хе, раз в шесть лет и такое пригождается...
|
|
Профиль
Цитата
Ответить
|