У меня есть проект Delphi 7, в котором есть несколько типов записей, содержащих строки, загруженные и сохраненные в файлах.
После перекомпиляции с помощью Delphi 2009, когда программа загружает записи из файла, строки искажаются, потому что компилятор ожидает Unicode, в то время как в файле есть строки Ansi.
Тип подобен этому:
type
После замены «строка» на «ansistring» проект даже не компилируется, говоря «E2029 ';' ожидалось, но '[' найдено ». Предложения?
Tpoint = record
name: string[255];
x, y: integer;
end;
Обновление с Delphi 7 до Delphi 2009
comment
Думаю сделаю старое приложение сохранить как Unicode, выглядит попроще
- person M.G.   schedule 21.12.2010
comment
М.Г. не будьте слишком уверены. Похоже, ты сдаешься очень легко.
- person Warren P   schedule 01.02.2011
Ответы (1)
короткая строка (которая является строкой [255]) по-прежнему интерпретируется так же, как и раньше: массив AnsiChar с первым байтом в качестве его длины. ansistring не может быть определен как массив, поэтому сообщение об ошибке.
Как вы читаете файл, чтобы заполнить записи? А как их набить? Может там ошибка возникает.
person
Ralph M. Rickenbach
schedule
20.12.2010
Как говорит Ральф, он все равно должен работать. Вам не нужно изменять какие-либо строковые [##] объявления.
- person Warren P; 01.02.2011