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

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

Загрузка StringList из буфера.. [D5, 2000]


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

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.


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

Наверх

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