![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему в Stringlist не работает LoadFromFile если файл не текст? [D7, WinXP]
RoLeX © (2006-10-23 19:17:00)Мне нужно StringList загрузить jpg файл, т.е. чтобы было также как открыть файл jpg при помощи блокнота.
Делаю так:
procedure TForm1.Button1Click(Sender: TObject);
var list:TStrings;
begin
list:=TStringlist.Create;
list.LoadFromFile('x.jpg');
list.SaveToFile('x2.jpg');
end;
Но только ничего не получается. Только первые 6 символов есть и всё.
Плохиш (2006-10-24 11:55:00) [1]
> Ketmar © (23.10.06 19:26) [4]
> >[2] Джо(c) 23-Oct-2006, 19:21
> >Ответ (aka сермяжная правда) кроется в исходном коде
> >метода procedure TStrings.SetTextStr:
> до сих пор, кстати, не могу понять, почему написано именно
> так. %-( рудименты каких-то загадочных идей создателей генофонда?
Просто создатели генофонда прекрасно знают, что после символа "конец строки" может идти только мусор или зловредный код ;-)
Сергей М. (2006-10-24 10:42:00) [2]
> RoLeX (23.10.06 19:54) [15]
>
> idTCPServer передаёт в AThread.Connection.WriteLn('текст');
>
Передающая стророна:
var
fs: TStream;
..
fs := TFileStream.Create('x.jpg', fmOpenRead);
try
AThread.Connection.Write Stream(fs, True, True);
finally
fs.Free;
end;
Принимающая сторона:
var
fs: TStream;
..
fs := TFileStream.Create('x2.jpg', fmCreate);
try
MyIdTCPClient.Read Stream(fs);
finally
fs.Free;
end;
КиТаЯц (2006-10-24 10:26:00) [3]
> Anatoly Podgoretsky © (23.10.06 20:46) [22]
>
> Может автору не понятно, что string переводится как строка,
> то есть текст.
Да, так же подумал...
Gero (2006-10-24 00:06:00) [4]> [0] RoLeX (23.10.06 19:17)
А ты картинку таким образом редактировать собрался? Не мучайся, используй фотошоп.
Ketmar (2006-10-23 23:56:00) [5]>[25] Anatoly Podgoretsky(c) 23-Oct-2006, 22:37
>его оттуда вырезал?
нет. сочинил на ходу. %-)
Loginov Dmitry (2006-10-23 23:37:00) [6]Можно конечно и в сетку засунуть картинку. Но чем не устраивает TImage ?
Anatoly Podgoretsky (2006-10-23 22:37:00) [7]Ketmar © (23.10.06 20:55) [23]
Похоже на текст, такой часто встречается в dfm файле, а ты его оттуда вырезал?
Leonid Troyanovsky (2006-10-23 21:24:00) [8]
> Ketmar © (23.10.06 20:55) [23]
> э-э-э. вот это: #1#18#0#27#4 -- тоже строка. но текст ли?
Кому и хрен - малина, кому и бламанже - полынь.
--
Regards, LVT.
Ketmar (2006-10-23 20:55:00) [9]>[22] Anatoly Podgoretsky(c) 23-Oct-2006, 20:46
э-э-э. вот это: #1#18#0#27#4 -- тоже строка. но текст ли? %-)
Anatoly Podgoretsky (2006-10-23 20:46:00) [10]Может автору не понятно, что string переводится как строка, то есть текст.
Ketmar (2006-10-23 20:37:00) [11]>[20] DrPass(c) 23-Oct-2006, 20:33
да тут диагноз прост. автор не дружит со справкой. что в примере увидел -- то и запихал. а почитать что-нибудь -- это перегруз моска.
дураки примеры делали, не впихнули туда все возможные варианты...
DrPass (2006-10-23 20:33:00) [12]
> RoLeX (23.10.06 19:54) [15]
>
> вместо "текст" хочу отправить текст файла
Допустим. А где обещанный ответ на вопрос "зачем бинарный файл (в котором в принципе неттекста) пихать в StringList"?
guav (2006-10-23 20:17:00) [13]> [15] RoLeX (23.10.06 19:54)
Произвольную послжеовательность байт не следует так отправлять.
Там есть WriteBuffer, WriteStream и даже WriteFile.
Zacho (2006-10-23 20:15:00) [14]Ketmar © (23.10.06 19:49) [14]
долго думал, что есть "опекс"...
А чё думать-то ?
http://en.wikipedia.org/wiki/OPEX
http://www.opex.pt/
OPEX is an alternative trading system (ATS) that that is managed by PEX (Private Exchange). The market was launched in 2003 to provide a trading environment to the small and mid cap securities of Portuguese companies.
И так далее :-)
Dmitrij_K (2006-10-23 20:14:00) [15]
> idTCPServer передаёт в AThread.Connection.WriteLn('текст');
>
> вместо "текст" хочу отправить текст файла. Предварительно
> преобразовав stringlist в string.
чем не устраивают специальные методы отправки винарных данных?
Ketmar (2006-10-23 20:09:00) [16]>[15] RoLeX 23-Oct-2006, 19:54
ясно. это не в "основная", это в "начинающим". где тебе и пояснят, почему так делать нельзя.
RoLeX (2006-10-23 19:54:00) [17]
> а где ответ на [5] и [6]?
idTCPServer передаёт в AThread.Connection.WriteLn('текст');
вместо "текст" хочу отправить текст файла. Предварительно преобразовав stringlist в string.
Ketmar (2006-10-23 19:49:00) [18]>[13] Dmitrij_K 23-Oct-2006, 19:44
>ОРЕХ
баян.
зыж прочитал это по-английски. долго думал, что есть "опекс"...
Dmitrij_K (2006-10-23 19:44:00) [19]ОРЕХ
Ketmar (2006-10-23 19:40:00) [20]>[10] RoLeX 23-Oct-2006, 19:38
>А где ответ?
а где ответ на [5] и [6]?