Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2013, 13:17   #1
vova65
Пользователь
 
Регистрация: 05.06.2011
Сообщений: 48
По умолчанию чтение данных из файла в array of UTF8String

Здравствуйте!

помогите пожалуйста разобраться с ситуацией!

Код:
test:array of UTF8String;
...
fHandle := CreateFile('c:\test.z', Generic_read, 0, Nil, open_existing, 0, 0);

setLength(test,Trunc(GetFileSize(fHandle,nil)/20));

ReadFile(fHandle, test[0], GetFileSize(fHandle,nil), z, 0);

CloseHandle(fHandle);
допустим у нас есть строки UTF8String в файле test.z всегда равные 20 байтам.. не больше.. а если меньше то остальная часть до 20 заполняется 00 байтами

собственно вопрос..
Как мне считать эти строки с файла в массив test:array of UTF8String ? тойсть..
чтоб было
test[0] = 20 байт UTF8String
test[1] = 20 байт UTF8String
test[2] = 20 байт UTF8String
...

заранее Большое Спасибо!!
vova65 вне форума Ответить с цитированием
Старый 23.05.2013, 13:57   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
test[0] = 20 байт UTF8String
Код:
SetLength(test[0],20*2);
ReadFile(fHandle, @test[0][1], 40, z, 0);
Если не ошибаюсь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.05.2013, 17:10   #3
vova65
Пользователь
 
Регистрация: 05.06.2011
Сообщений: 48
По умолчанию

спасибо!!! работает, вот только вместо
Цитата:
Сообщение от Stilet Посмотреть сообщение
ReadFile(fHandle, @test[0][1], 40, z, 0);
как я понял нужно использовать
Код:
ReadFile(fHandle, test[0][1], 40, z, 0);
в ходе работы возник еще один вопрос с этой оперы..
Код:
showmessage(test[0]+' '+test[1]);
почему выводится только test[0] ?
как добиться чтоб вывело test[0] и test[1] ?


разобрался..
оказывается строка не должна содержать в конце много 00 байтов

Последний раз редактировалось Stilet; 24.05.2013 в 08:29.
vova65 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение данных из txt файла. werrey Общие вопросы Delphi 21 07.01.2012 11:56
Чтение данных из файла Бинари C++ Builder 2 05.11.2011 14:43
Чтение структуры данных из файла Anuta606 Общие вопросы C/C++ 8 05.11.2010 18:26
Чтение данных из файла (Delphi 7) alxd Помощь студентам 15 14.08.2009 13:21
Чтение данных из файла в С++ Zaya007 Помощь студентам 9 17.03.2009 21:00