Форум: "Основная";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
ВнизРабота в D8 Найти похожие ветки
← →
h0use (2004-02-09 16:58) [0]Чем в Delphi 8 можно заменить строку типа:
FStream.WriteBuffer(Pointer(S)^,Length(S));
А то она выдает ошибку, чтоPointer(S)^
- Invalid type cast.
В D7 этот код работает
← →
VLAD-MAL (2004-02-09 17:02) [1]Нельзя!
Типы данных, не поддерживаемые в Delphi.Net:
- PChar;
- нетипизированные указатели;
- нетипизированные var и out-параметры;
- file of <тип>;
- real48;
- вариантные записи (записи, содержащие перекрывающиеся поля).
Потоки и нетипизированные указателив D8 недопустимы.
← →
clickmaker (2004-02-09 17:02) [2]S - string?
тада WriteBuffer(S[1], Length(S))
← →
h0use (2004-02-09 17:21) [3]S - string, но ведь S[1] это будет же первый символ...или в восьмерке это будет указатель на первый элемент?
← →
h0use (2004-02-09 17:27) [4]Увы, я проверил [1] пишется всякая муть в результате :(
← →
Serginio666 (2004-02-09 17:29) [5]Не муть а Юникоде.
← →
Serginio666 (2004-02-09 17:36) [6]Честно говоря не видел 8 ку но очень хочется. Во всяком случае в Net такой вариант не прокатил бы, но в 8 ке через хэлперы возможно. Если хочешь в кодировке то через Encoding.
Смотри
public procedure Write(buffer: array of Byte; offset: Integer; count: Integer); virtual; abstract;
И
public function GetBytes(s: String): array of Byte; virtual;
← →
Serginio666 (2004-02-09 17:39) [7]Stream.Write
Encoding.GetBytes
← →
h0use (2004-02-10 11:10) [8]А подробнее?
Вот так пишет Борланд в восьмерке:
procedure TStrings.SaveToFile(const FileName: string; Encoding: System.Text.Encoding);
var
Stream: TStream;
begin
Stream := TFileStream.Create(FileName, fmCreate);
try
SaveToStream(Stream, Encoding);
finally
Stream.Free;
end;
end;
rocedure TStrings.SaveToStream(Stream: TStream; Encoding: System.Text.Encoding);
var
Buffer, Preamble: array of Byte;
begin
if Encoding = nil then
Encoding := System.Text.Encoding.Default;
Buffer := Encoding.GetBytes(GetTextStr);
Preamble := Encoding.GetPreamble;
if Length(Preamble) > 0 then
Stream.WriteBuffer(Preamble, Length(Preamble));
Stream.WriteBuffer(Buffer, Length(Buffer));
end;
Но это для TStrings. Потом я не понимаю, а где они берут ту информацию, что пишут? Разъясните что да как и как на основе этого записать одну строку типа String?
← →
h0use (2004-02-10 12:06) [9]Так есть идеи или нет?
← →
Serginio666 (2004-02-10 12:48) [10]А getTextStr это что???? Посмотри внимательней
Serginio666 (09.02.04 17:36) [6]
А берут они ее из MSDN.
Кроме всего прочего скачай http://www.aisto.com/roeder/dotnet/
Reflector for .NET
Он переводит код из IL в нормальный язык программирования.
И можешь посмотреть как реализованы базовые классы Net
← →
h0use (2004-02-10 14:12) [11]
function TStrings.GetTextStr: string;
var
Buffer: StringBuilder;
I, Count: Integer;
begin
Count := GetCount;
Buffer := StringBuilder.Create;
for I := 0 to Count - 1 do
begin
Buffer.Append(Get(I));
Buffer.Append(LineBreak);
end;
Result := Buffer.ToString;
end;
Вот только что такое StringBuilder я не нашел :(
← →
Serginio666 (2004-02-10 14:24) [12]Скачиваешь
http://www.aisto.com/roeder/dotnet/
Ищешь в mscorlib/mscorlib.dll/System.Text StringBuilder и там смотришь ее реализацию.
По сути это динамическая строка, и если ее капасити не превышает двойного размера строки (и там в разных потоках) то ToString выдает ссылку на строку в StringBuilder.
А еще лучше покупаешь книгу по C# и там все нетовские классы описаны. C# не очень сложен.
← →
Serginio666 (2004-02-10 14:36) [13]А вопросы по Net лучше задавай на
http://www.rsdn.ru/Forum/MsgList.aspx?mid=533746&flat=0
или
http://www.gotdotnet.ru/
← →
h0use (2004-02-10 15:19) [14]Да я бы задовал там, но они там на Си ответы дают, а я Дельфинист-пасквилянт :). Потом D8 это все же больше Делфи, поэтому конструкции не всегда похожи на шарповские.
← →
Serginio666 (2004-02-10 15:30) [15]Там половина бывших Дельфистов. Не растраивайся.
И не на Си а на C# а это большая разница.
А если очень сильно надо то и на Delphi не проблема.
← →
h0use (2004-02-10 15:42) [16]Кстати Reflection идет вместе с Делфой
← →
Игорь Шевченко (2004-02-10 15:57) [17]Ну вот, дождались и мы соответствующих вопросов по D8 :))
← →
h0use (2004-02-10 16:46) [18]
> Игорь Шевченко © (10.02.04 15:57) [17]
А где еще такие топики обсуждались?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.073 c