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

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

работа с TStringStream


Owl ©   (2013-05-31 11:24:00) 

Как удалить последний LINE_BREAK


procedure TForm1.FormCreate(Sender: TObject);
const
 LINE_BREAK = #13#10;
var
 I: Integer;
 SS: TStringStream;
begin
 SS := TStringStream.Create('');
 for I := 0 to 10 do
   SS.WriteString(IntToStr(I) + LINE_BREAK);
 // Здесь нужно удалить последний LINE_BREAK
 ShowMessage(SS.DataString);
end;


Jeer   (2013-05-31 15:50:00) [1]

>ShowMessage(Trim(SS.DataString));

Не-не-не.. так нечестно, я ж съэкономил два байта, как раз тех самых, мокрых. :)


Медвежонок Пятачок   (2013-05-31 12:40:00) [2]

ShowMessage(Trim(SS.DataString));


"Добрый Сок"   (2013-05-31 12:14:00) [3]

Конечно, проще не писать, чем писать и удалять
и лучше, имхо, разбить
т.е. не
for i := 0 to Max-1 do
if i = (Max-1) then WriteString(IntToStr(i))
else WriteString(IntToStr(i) + LINE_BREAK);

а
for i := 0 to Max-1-1 do
WriteString(IntToStr(i) + LINE_BREAK);
WriteString(IntToStr(Max-1))

неча на каждой итерации проверять


Jeer   (2013-05-31 12:02:00) [4]

Да хоть так

for i := 0 to Max-1 do
 if i = (Max-1) then WriteString(IntToStr(i))
 else WriteString(IntToStr(i) + LINE_BREAK);


"Добрый Сок"   (2013-05-31 11:42:00) [5]

TMyStringStream = class(TStringStream);

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
const
LINE_BREAK = #13#10;
var
I: Integer;
SS: TStringStream;
begin
SS := TStringStream.Create('');
for I := 0 to 10 do
  SS.WriteString(IntToStr(I) + LINE_BREAK);
TMyStringStream(SS).SetSize( Length(SS.DataString) - Length(LINE_BREAK) );
SS.WriteString('---');
ShowMessage(SS.DataString);
end;


Наверх

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