120 / 110 / 19
Регистрация: 04.11.2013
Сообщений: 471
1

Переезд проекта из delphi7 в xe5 / ошибка при работе с бинарным файлом

06.12.2013, 17:50. Показов 1005. Ответов 3
Метки нет (Все метки)

Доброго времени суток.

Недавно переехал с семёрки на xe5, перенёс проект и... он вешается. Выяснил, что проблема при считывании бинарного файла, программа просто уходит в цикл.

Вот такой кусок кода:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
var
  fl: File;
  s: string;
  r: char;
...
    AssignFile(fl, path + sr.Name);
    Reset(fl, 1);
    BlockRead(fl, r, 1);
...
      repeat
        s := s + r;
        BlockRead(fl, r, 1);
      until (r=#00);
Код исправно работал после компиляции семёркой, xe5 начинает устраивать траблы.

Есть ли какие тонкости при работе с бинарными файлами в xe5, в отличие от delphi7?

Добавлено через 6 минут
UPD> Решил проблему методом тыка. Поменял тип с char на byte. Но вопрос всё равно есть. В чём тогда разница между семёрочным char и xe5?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2013, 17:50
Ответы с готовыми решениями:

Проблемка при работе с бинарным файлом
Q живым.Есть проблема при работе с бинарным файлом.В файле 1.dat пытался разместить 10 чисел,но...

Ошибка при работе с файлом
Собственно при обработке процедуры, появляется ошибка: I/O error 103 Отладчик выделяет шестую...

Ошибка при работе с файлом
Пытался разобраться с записью и чтением из файла, посмотрел с десяток тем здесь, но столкнулся со...

Ошибка при работе с файлом
Суть задачи в том что надо надо с файла(пользователь сам вводит путь к файлу) Надо что бы в файле...

3
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31262 / 20435 / 7967
Регистрация: 22.10.2011
Сообщений: 35,485
Записей в блоге: 6
06.12.2013, 17:59 2
Семерочный Char - это AnsiChar, а 2009+ - это WideChar, ибо Юникод...
1
120 / 110 / 19
Регистрация: 04.11.2013
Сообщений: 471
06.12.2013, 18:00  [ТС] 3
Цитата Сообщение от UI Посмотреть сообщение
Семерочный Char - это AnsiChar, а 2009+ - это WideChar, ибо Юникод...
Спасибо за разъяснение. Что-то такое подозревал, когда увидел китайские иероглифы при дебаге
0
2648 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,725
06.12.2013, 18:01 4
Цитата Сообщение от Valenth Посмотреть сообщение
В чём тогда разница между семёрочным char и xe5?
7-чный Char - это AnsiChar (зазмером в 1 байт)
Начиная емнип с D2009 Char стал WideChar'ом (размером в 2 байта)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2013, 18:01

Ошибка при работе с текстовым файлом
Пытаюсь написать простую программу для поиска всех возможных слов из букв, введённых пользователем....

Ошибка при работе с .ini файлом
Прочитал, что хоть использование .ini файлов и устарело, но всё же кое-где практичнее системного...

Ошибка при работе с Excel файлом
В модели расположен эксель файл с именем GIS и функция которая должна с ним работать. В ней...

Ошибка при работе с файлом в gedit
Не знаю, в чем проблема, но как только я хочу работать с файлом gedit, сразу же выдает ошибку....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.