Помощь - Поиск - Пользователи - Календарь
Полная версия: Файл file.bin и мне его надо перенести в массив
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Cube
Здравствуйте у меня вот проблема я новичок в программирование. У меня вот такая проблема есть файл file.bin и мне его надо перенести в массив но у меня это не получается, пишу на Turba pascal’e.

C Уважением Антон
volvo
Можно поподробнее? Что за массив, в который тебе понадобилось перенести файл (а главное - зачем?)...
Cube
Мне в этом файле надо изменить некоторые символы я знаю их адрес но я не знаю как перейти именно к нему а в дальнейшем мне надо этот файл закодировать по определенному алгоритму. На сколько я понял удобней будет работать через массив с информацией?
volvo
Цитата
На сколько я понял удобней будет работать через массив с информацией?
Удобнее чем напрямую с файлом? Вряд ли... Кроме всего прочего, если файл будет больше 64Кб, то у тебя начнутся дополнительные проблемы. Оно тебе надо?

Просто:
var f: File of Byte; { <--- или File of Char, как тебе удобнее }
...
Assign(f, 'file.bin'); Reset(f);
...
Seek(f, 20); { <--- ставим указатель файла на 20-ю позицию (начиная с нуля) }
следующая операция будет производиться с тем элементом файла, перед которым установлен указатель... В приведенном выше случае, если сделать read(f, ch), то будет прочитан 20-ый символ (или байт, смотря как ты описал F) файла, если же сделать write(f, ch), то в 20-й символ будет записано значение ch... Как видишь, все не сложнее, чем с массивами.

Только учти, что после произведения чтения/записи позиция файлового указателя меняется, нельзя сделать:
seek(f, 20);
read(f, ch);
ch := ... { <--- как-то обрабатываешь прочитанный символ }
write(f, ch); { <--- вот тут будь внимателен: ... }
... ch запишется не туда же, откуда был считан, а в следующий байт, поскольку после чтения указатель передвинется дальше.

Вот в все, что тебе нужно знать для того, чтобы начать делать свою программу (в FAQ-е есть тема "Файлы", там тоже почитай), что не получится - обращайся smile.gif
Cube
Огромное спасибо

P.S Не подскажете где можно прочитать про работу с байтами?
Cube
Вот у меня проблема я не знаю что делать всё проверил, в одной папки одно название

Выдают ошибку “Error 2: File not found”


Код
Program prog;

Var f:File Of Char;
    ch:char;

Begin
  Assign(f, '2.bin');
  Reset(f);

  Seek(f,2);
  Read(f,ch);
  Writeln(ch);
  Readln;

End.


P.S Через free pascal работает(TP выдаёт ошибку ^ ), но надо через командную строку запускать exe а если в интерактивном режиме выдают runtime error. Что то постоянно такие не понятки
Sozialist
Пиши полный адрес файла: 'Disk:\...\2.bin'. Видимо, все дело в настройках TP. Посмотри
Cube
Вот можете помочь у меня такая задача есть файл fail.bin мне из него надо брать символ и значение символа записывать в массив в двоичном коде или в строку что бы в дальнейшем я мог его кодировать по определенному алгоритму
мисс_граффити
А проблема на каком этапе?
То есть с чем нужна помощь?
Cube
Цитата(мисс_граффити @ 8.10.2008 23:57) *

А проблема на каком этапе?
То есть с чем нужна помощь?


Проблема получить и поместить двоечный код символа в массив для дальнейшей работы.
Cube
Вот есть переменная сh и тип у неё чар как я могу получить массив с двойным кодом символа который в этой переменой находиться
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.