Форум » Программистские штучки » CR-LF » Ответить

CR-LF

administrator: Летом 2009 года, работая с каротажной плюшкой, написанной иным человеком (причем еще в 1996 году), столкнулся с тем, что на некоторых файлах выдавала она непонятные и невразумительне ошибки (ошибка 62: Input past End Of File). Выяснилось, что в некоторых файлах неправильно оформлены концы строк. В текстовых файлах строки должны кончаться последовательностью символов CR и LF (десятичные коды ASCII 13 и 10). А в некоторых LASах был только LF. В результате первый же Line Input считывал в переменную весь файл и естественно следующий Line Input приводил к ошибке. Для обхода этой фигни была написана мааааленькая процедурка, переписывающая файл в правильном виде: [pre2] 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 [/pre2]

Ответов - 1

administrator: Поставил в заголовок указание на имя файла. Хе-хе, раз в шесть лет и такое пригождается...



полная версия страницы