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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2010, 20:27   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Запись String через BlockWrite

Насколько я помню, string - сам по себе указатель на первый символ строки (или на нулевой, поправьте).

Так вот, как используя BlockRead\BlockWrite Читать, записать String? По одному символу? Предварительно записав их длину?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 13.09.2010, 20:40   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если нужно тупо символы то
Код:
BlockWrite(F,S[1],Length(s)*SizeOf(Char);
ну а если с длиной тo
Код:
procedure ReadString(F:File;S:string);
var i:integer;
begin
 i:=Length(S);
 BlockWrite(F,i,SizeOf(i));
 BlockWrite(F,s[1],i*SizeOf(Char));
end;

function ReadString(F:File):string;
var i:integer;
begin
 BlockRead(F,i,SizeOf(i));
 SetLength(Result,i);
 BlockRead(F,Result[1],i*SizeOf(Char));
end;
а вообще я писал уже этот пример, только для TStream
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.09.2010, 20:42   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Код:
BlockWrite(F,S[1],Length(s)*SizeOf(Char);
В этом случае, как я понимаю, определитель длины становится на свое место правильно?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 13.09.2010, 20:47   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

в таком случае пишутся только символы, ни их длина, ни что либо еще не пишется.(а функции мои уже пишут/читают с длиной)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
BlockRead Alex Cones Общие вопросы Delphi 8 18.07.2010 08:36
запись из richtextBox в string Cpluser Общие вопросы .NET 6 12.10.2009 14:58
Добавить запись в БД через MIDAS ??? EugeneIsmatulin БД в Delphi 3 16.09.2009 16:19
Запись String в файл snaem Общие вопросы C/C++ 16 12.02.2008 12:26
Запись на диск через Delphi delphin100 Общие вопросы Delphi 1 09.10.2007 10:10