![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Загрузка StringList из буфера.. [D5, 2000]
pathfinder © (2006-10-24 11:13:00)Добрый день.
Stream := TFileStream.Create(FileIn, fmOpenRead);
Size := Stream.Size;
GetMem(Buffer, Size);
Stream.ReadBuffer(Buffer^, Size);
Подскажите, пожалуйста, как теперь загрузить данные из буфера в стринглист?
pathfinder (2006-10-24 13:08:00) [21]Или надо создавать новый поток и использовать метод TStrings.SaveToStream?
pathfinder (2006-10-24 13:07:00) [22]а есть обратная процедура, чтобы измененные данные из стринглиста закатать назад в буфер?
Dmitrij_K (2006-10-24 13:05:00) [23]офтоп
чё, всем в школе задали дом. задание по классу TStringList?
pathfinder (2006-10-24 13:00:00) [24]спасибо!
pathfinder (2006-10-24 13:00:00) [25]точно..заработало
SetString(S, PChar(Buffer), Size);
List.Text := S;
Джо (2006-10-24 12:55:00) [26]> только вот на SetTextStr появляется undeclared identifier..
StringList.Text := S;
Dmitrij_K (2006-10-24 12:55:00) [27]тогда так
var S:String;
SetString(S, Pointer(Buffer), Size);
StringList.Test := S
pathfinder (2006-10-24 12:53:00) [28]
> Dmitrij_K (24.10.06 12:38) [16]
> var S:String;
> SetString(S, Pointer(Buffer), Size);
> StringList.SetTextStr(S);
Это вместо LoadFromStream значит?
только вот на SetTextStr появляется undeclared identifier..
Сергей М. (2006-10-24 12:44:00) [29]
> Джо © (24.10.06 11:27) [5]
Да. согласен.
Заклинило меня что-то.
Dmitrij_K (2006-10-24 12:38:00) [30]
var S:String;
SetString(S, Pointer(Buffer), Size);
StringList.SetTextStr(S);
Dmitrij_K (2006-10-24 12:36:00) [31]
> то как мне теперь загрузить в стринглист данные именно из
> Buffer
Без дополнительных преобразований никак
pathfinder (2006-10-24 12:30:00) [32]Аа..получается, что экземпляр TStream это как ссылка на какие-то данные, которые читаются из внешнего источника в буфер. А при использовании методаTStrings.LoadFromStream данные будут опять читаться из файла ассоциированного с экз. TFileStream. Как ReadBuffer, только не в буфер, а в стринглист..
А если я прочитал данные из файла в буфер, а потом изменил буффер
Stream := TFileStream.Create(FileIn, fmOpenRead);
Size := Stream.Size;
GetMem(Buffer, Size);
Stream.ReadBuffer(Buffer^, Size);
Buffer:=Change(Buffer);
то как мне теперь загрузить в стринглист данные именно из Buffer, а не читать их опять из файла?
Джо (2006-10-24 12:26:00) [33]>
>
> [11] pathfinder (24.10.06 12:18)
> Получается теперь чтобы загрузить данные из Buffer в StringList
> надо создать новый поток MemoryStream, а потом уже из него
> делать StringList.LoadFromStream(Stream)?
Откуда у тебя данные в Buffer появляются?
Dmitrij_K (2006-10-24 12:21:00) [34]
> Получается теперь чтобы загрузить данные из Buffer в StringList
> надо создать новый поток MemoryStream
Нет!
Можно из любого наследника Tsteam у кого есть метод Read()
напримет
TFileStream TMemoryStream
pathfinder (2006-10-24 12:18:00) [35]Получается теперь чтобы загрузить данные из Buffer в StringList надо создать новый поток MemoryStream, а потом уже из него делать StringList.LoadFromStream(Stream)?
pathfinder (2006-10-24 12:08:00) [36]
> Dmitrij_K (24.10.06 11:47) [9]
> pathfinder
> я не к вам обращался
да..это я невнимательно прочитал ваше сообщение..
Dmitrij_K (2006-10-24 11:47:00) [37]pathfinder
я не к вам обращался
pathfinder (2006-10-24 11:29:00) [38]
> Dmitrij_K (24.10.06 11:27) [7]
>
> > Метод TStream.ReadBuffer не заполняет буфер, а читает
> из
> > буфера
>
> может вы ошибаетесь?
> Reads bytes from the stream into Buffer.
> ???
тогда уж не я..а Borland)
Dmitrij_K (2006-10-24 11:27:00) [39]
> Метод TStream.ReadBuffer не заполняет буфер, а читает из
> буфера
может вы ошибаетесь?
Reads bytes from the stream into Buffer.
???
pathfinder (2006-10-24 11:27:00) [40]
> Сергей М. © (24.10.06 11:24) [3]
>
> > Т.е. содержимое буфера которое мы заполняем методом ReadBuffer
>
>
> Метод TStream.ReadBuffer не заполняет буфер, а читает из
> буфера
мм.. "ReadBuffer (public) Reads bytes from the stream into Buffer. " Borland® Copyright © 2005 Borland Software Corporation. All rights reserved.