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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2009, 19:29   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию Можно ли работать с MemoryString на уровне String?

Т.е. свободно искать в нём что нужно и т.д.
Или перводить в String? Сначала в stringlist.loadfromstream а потом string:=stringlist.text?
TwiX вне форума Ответить с цитированием
Старый 01.10.2009, 23:36   #2
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Цитата:
Можно ли работать с MemoryString на уровне String?
Что такое MemoryString? Возможно ты имел ввиду TStringStream. В TStringStream есть свойство DataString, правда только на чтение. В нем и осуществляй поиск.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 02.10.2009, 09:29   #3
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Ой, да, описался =)
Спасибо.

А для записи переводить в string.
Есть способ покороче чем:
Сначала в stringlist.loadfromstream а потом string:=stringlist.text?
TwiX вне форума Ответить с цитированием
Старый 02.10.2009, 09:42   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
TwiX
А в чем задача состоит?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.10.2009, 10:09   #5
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Цитата:
Есть способ покороче чем:
Сначала в stringlist.loadfromstream а потом string:=stringlist.text?
Несколько вариантов:
Код:
var
  strstrm: TStringStream;
  s: String;
begin
  strstrm := TStringStream.Create('123');
  s := strstrm.DataString;
  s := '456';
  strstrm.Free;
  strstrm := TStringStream.Create(s);
end;
Код:
var
  strstrm: TStringStream;
  s: String;
begin
  strstrm := TStringStream.Create('123');

  // перезапись содержимого в TStringStream
  strstrm.Position := 0;
  strstrm.WriteString('45');
end;
TStringStream - это обертка над String, позволяющмя работать с последним как с потом.
В потоке можно дописать что-то в конец:
strstrm.Seek(0, soFromEnd);
strstrm.WriteString('456');

перезаписать что-то внутри потока:
strstrm.Position := 20;
strstrm.WriteString('456');

разве что, вставки нет и удаления, для этого придется копировать данные в String, изменять и затем обратно в TStringStream.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 02.10.2009, 10:26   #6
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Код:
begin
  strstrm := TStringStream.Create('123');

  // перезапись содержимого в TStringStream
  strstrm.Position := 0;
  strstrm.WriteString('45');
end;
Как я понимаю, это перезапишет только первые два символа?

Stilet, работа с исходным кодом html'ки)

Спасиб всем)
TwiX вне форума Ответить с цитированием
Старый 02.10.2009, 10:31   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Stilet, работа с исходным кодом html'ки)
Тю... Все в String гони и не парься.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.10.2009, 10:38   #8
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Код:
begin
  strstrm := TStringStream.Create('123');

  // перезапись содержимого в TStringStream
  strstrm.Position := 0;
  strstrm.WriteString('45');
end;
Нет, это заменит предыдущее значение строки на новое.
Цитата:
Все в String гони и не парься.
Согласен, выбирай более подходящий инструмент (тип данных).
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++. Что и как можно внести в DLL и как потом с этим работать? dampirik Помощь студентам 5 21.09.2009 08:19
Работа с файлами на низком уровне JamS007 Общие вопросы C/C++ 15 26.05.2009 21:17
Мне интересна как можно работать с байтами. (think) Cube Паскаль, Turbo Pascal, PascalABC.NET 2 14.10.2008 11:42
Можно ли в Delphi работать с MySQL chingiz БД в Delphi 7 24.05.2007 23:06
Работа на низком уровне Prowler Работа с сетью в Delphi 2 26.12.2006 06:29