Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Записать WideString строку [D7, 2000, XP]


Страницы:   1 2 3

Ёжик ©   (2007-04-22 04:42:00) 

Может я чего-то не понимаю, но не получается.
Записываем
type
TServer = packed record
   edServer  : WideString;
end;

var
F   : File;
Server_ : TServer;

begin
{$I-}
AssignFile (F, 'Config.INI');
Rewrite (F, 1);
if IOResult <> 0 then exit;

FillChar (Server_, SizeOf (Server_), 0);
Server_.edServer := edServer;

try
 BlockWrite (F, Server_, SizeOf (TServer));
Finally
 CloseFile (F);
end;
{$I+}


Пытаемся прочитать

type
TServer = packed record
   edServer  : WideString;
end;

var
F   : File;
Server_ : TServer;

begin
{$I-}
AssignFile (F, 'Config.INI');
Reset (F, 1);
If IOResult <> 0 then exit;
FillChar (Server_, SizeOf (Server_), 0);

try
 BlockRead (F, Server_, SizeOf (TServer));
 //edServer := Server_.edServer;
Finally
 CloseFile (F);
end;
{$I+}


_Аноним   (2007-04-23 10:57:00) [21]

> Ёжик   (22.04.07 20:21) [11]
>
> > Объяви еще как shortstring
>
> Это ухмылка или подсказка?


Вообще задумывалось как подсказка, но опечатался, получилась ухмылка. Следовательно, дурацкий совет:-)


> Leonid Troyanovsky ©


> У рекордов не было методов и в D1.


Не было. А теперь есть


Leonid Troyanovsky   (2007-04-23 09:46:00) [22]


> Ёжик   (23.04.07 02:39) [19]

> Дык, dll однако. Оно, конечно, можно и в exe, но там циклы
> всякие - зачем память съедать?

Помылся б ты, Ёжик (c)
В смысле, книжечку почитай.

--
Regards, LVT.


Ёжик   (2007-04-23 02:39:00) [23]


> "юникодность" потеряется если была, переконвертит строку
> на присвоении... или это неважно? зачем тогда указывал именно
> widestring?

Дык, dll однако. Оно, конечно, можно и в exe, но там циклы всякие - зачем память съедать?


Ёжик   (2007-04-23 02:39:00) [24]


> "юникодность" потеряется если была, переконвертит строку
> на присвоении... или это неважно? зачем тогда указывал именно
> widestring?

Дык, dll однако. Оно, конечно, можно и в exe, но там циклы всякие - зачем память съедать?


{RASkov}   (2007-04-22 21:14:00) [25]

> [13] Ёжик   (22.04.07 20:45)
> var F   : File;
> Server_ : TServer;
>.......
> BlockWrite (F, Server_, SizeOf (TServer));


Ну а зачем так делать? SizeOf (TServer) конкретно в твоем случае всегда будет 4...
Делай процедуру записи в файл твоей структуры, для конкретного примера типа так:
procedure SaveMyRecord(const FlNm: String; Rec: TServer);
var FS: TStream; N: Integer;
begin
FS:=TFileStream.Create(FlNm, fmCreate);
try
 N:=Length(Rec.edServer);
 FS.WriteBuffer(N, SizeOf(Integer));
 FS.WriteBuffer(Rec.edServer, N);
finally FS.Free; end;
end;

Что нить в этом духе....И WideString возможно и не нужен, так как с ним наверное по другому будет, не работал я с ним(WideString)....


Leonid Troyanovsky   (2007-04-22 20:56:00) [26]


> _Аноним   (22.04.07 19:38) [10]

> А чего тут неясного, непонятливый наш?
> {RASkov} вот понял.

У рекордов не было методов и в D1.

--
Regards, LVT.


sniknik   (2007-04-22 20:53:00) [27]

> Или накрайняк ini из KOL Кладова.
это тоже текстовый файл...


sniknik   (2007-04-22 20:51:00) [28]

> WideString -  указатель на строку? Как же быть?
а смотря что хочеш сделать...

> Мне не нужен текстовый файл.
если бы код сработал, вместо указателя были бы данные то по нему ты бы получил именно текстовый файл... ? и как это не нужен, если его и пытаешься сделать. ну с расширеним ini только.

> Это ухмылка или подсказка?
видиш смайл ухмылки? а нет так возьми и проверь...
но shortstring, или ansistring это вовсе не widestring... "юникодность" потеряется если была, переконвертит строку на присвоении... или это неважно? зачем тогда указывал именно widestring?


Ёжик   (2007-04-22 20:45:00) [29]

Ну так этА((  Это и есть полный код. TextFile это крайний случай. Или накрайняк ini из KOL Кладова.


{RASkov}   (2007-04-22 20:39:00) [30]

> [11] Ёжик   (22.04.07 20:21)

Приведи полный код или может быть тебя устроит var F: TextFile;


Ёжик   (2007-04-22 20:21:00) [31]


> Объяви еще как shortstring

Это ухмылка или подсказка?


_Аноним   (2007-04-22 19:38:00) [32]


> Leonid Troyanovsky ©


А чего тут неясного, непонятливый наш?
{RASkov} вот понял.


Leonid Troyanovsky   (2007-04-22 18:15:00) [33]


> _Аноним   (22.04.07 17:51) [7]

> Я например делал для того, чтобы использовать методы записи.

Высказывайся ясней, таинственный наш.

--
Regards, LVT.


{RASkov}   (2007-04-22 17:56:00) [34]

> Я например делал для того, чтобы использовать методы записи.

В D7 методов записи нет.


_Аноним   (2007-04-22 17:51:00) [35]


> И, вообще, зачем нужна запись на 1 поле.


Я например делал для того, чтобы использовать методы записи.
Здесь, наверно, не весь код представлен


Leonid Troyanovsky   (2007-04-22 17:23:00) [36]


> Desdechado ©   (22.04.07 16:18) [5]
> Зачем упакованная запись на 1 поле?

И, вообще, зачем нужна запись на 1 поле.

--
Regards, LVT.


Desdechado   (2007-04-22 16:18:00) [37]

Зачем упакованная запись на 1 поле? И почему это поле безразмерное?


_Аноним   (2007-04-22 15:25:00) [38]


> WideString -  указатель на строку? Как же быть?


Объяви еще как shortstring


Ёжик   (2007-04-22 15:16:00) [39]

WideString -  указатель на строку? Как же быть?

Мне не нужен текстовый файл.


sniknik   (2007-04-22 10:37:00) [40]

TServer = packed record
  edServer  : WideString; //вот это переменная указатель на строку, а не сами ее данные включенные в рекорд  
end;

FillChar (Server_, SizeOf (Server_), 0); //вот это ты очистил указатель

BlockRead (F, Server_, SizeOf (TServer)); //это записал указатель левым какимто значением (то что записано раньше в другой программе/тойже еще раз запущенной уже не действительно)

//edServer := Server_.edServer; //ну еще б ей здесь не валиться, пытаешся передать строку с неизвестно чего, а строки то и нет вообще (посмотри в файле блокнотом что у тебя записывается...)

почитай про работу с текстовыми файлами, и вообще файлами, про TFileStream например.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо