Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] Определить и записать смещение каждой строки

Ответить
Настройки темы
.NET - [решено] Определить и записать смещение каждой строки

Ветеран


Сообщения: 519
Благодарности: 90


Конфигурация

Профиль | Отправить PM | Цитировать


Требуется написать программу на C# (но буду благодарен и за теорию).
Производится чтение из текстового файла (кодировка ANSI).
Нужно определить смещение первого символа каждой строки, вписать все смещения этих символов в файл (то есть получается бинарный файл).

вопрос состоит в том каким образом можно считать эти смещения и записать их в виде:
00000000 00000001 (без пробелов , то есть при открытии этого файла видим в hex-редакторе видим "ссылки" на определённое смещение)

Отправлено: 11:55, 13-08-2011

 

Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


S.T.R.E.L.O.K., Есть нюанс, как закодировано окончание строки - в разных ОС разные соглашения о формате текстовых файлов. Для windows надо искать последовательность двух символов с кодами 0D и 0A - следующий символ - будет первым символом новой строки.
Так же существует спецсимвол обозначающий конец текстового файла, правда в реальной жизни практически не встречается, но формально, встретив его, нужно завершить чтение текстового файла и конечно же не считать символом новой строки, даже если он идёт за 0x0D0A.
Есть ли ограничение на размер входящего файла? - мне попадались логи объёмом по 3Гб. Если смещение представлять традиционным int (что в корне неверно, т.к. он знаковый), то корректно обработаются только файлы объёмом до двух гигабайт; если беззнаковым int - до 4 Гб.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:13, 13-08-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 519
Благодарности: 90

Профиль | Отправить PM | Цитировать


Цитата Busla:
Для windows надо искать последовательность двух символов с кодами 0D и 0A »
да, последовательность именно такая. тогда изменю немного вопрос, как найти смещение символа с кодом 0D и минус ещё один символ из самого смещения (в последующей обработке символы перехода на новую строку будут удаляться), если не ошибаюсь.
Цитата Busla:
Так же существует спецсимвол обозначающий конец текстового файла, правда в реальной жизни практически не встречается, но формально, встретив его, нужно завершить чтение текстового файла и конечно же не считать символом новой строки, даже если он идёт за 0x0D0A. »
в моём случае, данного символа нет.
Цитата Busla:
Есть ли ограничение на размер входящего файла? - мне попадались логи объёмом по 3Гб. Если смещение представлять традиционным int (что в корне неверно, т.к. он знаковый), то корректно обработаются только файлы объёмом до двух гигабайт; если беззнаковым int - до 4 Гб »
для моего случая так же не существенно. файлы, которые придётся обработать не больше 2 мб, но их более 100.

Последний раз редактировалось S.T.R.E.L.O.K., 13-08-2011 в 19:35.


Отправлено: 19:16, 13-08-2011 | #3


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


S.T.R.E.L.O.K., не понимаю суть затруднений: вы не знаете как читать из двоичного файла, или что такое смещение?

Отправлено: 11:55, 14-08-2011 | #4


Ветеран


Сообщения: 519
Благодарности: 90

Профиль | Отправить PM | Цитировать


Busla, не знаю как определить смещение . да и работать с ними в C# не особо

Отправлено: 13:09, 14-08-2011 | #5


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


А что его определять-то: чтобы анализировать символы, нам нужно читать данные побайтно: байт прочитал, увеличил счётчик - этот счётчик и есть смещение.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:55, 15-08-2011 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] Определить и записать смещение каждой строки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
MySQL - Дописать в начало строки текст каждой записи в опредленном поле Artem-Samsung Программирование и базы данных 7 02-10-2019 20:22
Как определить кодировку строки передаваемой как значение параметра OLE-серверу Excel RUVATA AutoIt 12 13-12-2010 23:22
CMD/BAT - [решено] Как определить IP и записать его в переменную? (OS: Windows Vista) Voshal Скриптовые языки администрирования Windows 7 17-05-2010 11:43
Загрузка - смещение экрана oleg1 Microsoft Windows 2000/XP 1 08-05-2009 18:42
Как определить наличие диска в CD-ROM'е из командной строки? AT Хочу все знать 1 02-01-2004 10:37




 
Переход