Форум: "Основная";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
ВнизString индексы и VAR параметр Найти похожие ветки
← →
Hog (2003-06-10 16:14) [0]Тут код проходил по нитки где-то...
Там передавалось в Func(var Buf; Var:integer);
вот так
Func(s[1],1) - к примеру.
В хелпах по дельфи для String я нашел
AnsiString, sometimes called the long string, is the preferred type for most purposes.
You can index a string variable just as you would an array. If S is a string variable and i an integer expression, S[i] represents the ith character--or, strictly speaking, the ith byte--in S. For a ShortString or AnsiString, S[i] is of type AnsiChar; for a WideString, S[i] is of type WideChar. For single-byte (Western) locales, MyString[2] := "A"; assigns the value A to the second character of MyString. The following code uses the standard AnsiUpperCase function to convert MyString to uppercase.
var I: Integer;
begin
I := Length(MyString);
while I > 0 do
begin
MyString[I] := AnsiUpperCase(MyString[I]);
I := I - 1;
end;
end;
Be careful indexing strings in this way, since overwriting the end of a string can cause access violations.
Also, avoid passing long-string indexes as var parameters, because this results in inefficient code.
Из последней фразы можно сделать вывод, что передавать S[1] получается неэффективный код?
Или я не понял что-то?
← →
VMcL (2003-06-10 17:04) [1]>Hog (10.06.03 16:14)
Как ты так умудрился скопировать help?
Не AnsiUpperCase, а UpCase.
← →
Hog (2003-06-10 17:13) [2]У меня именно в хелпе AnsiUpperCase... (Delphi 7)
Я просто вырезку привел, код здесь не самое основное...
Я просил прояснить, то что жирным, внизу
← →
Smithson (2003-06-10 17:28) [3]Видишь ли, строка в Delhpi больше чем строка, это уже почти объект. Ита переменная, которая описана как : String, уже указатель. Поэтому код получается - получить по указателю адрес первого байта и передать этот адрес. Плюс, при такой передаче параметра, библиотечный код не может отследить выход за пределы отведенной строке памяти (в нормальном случае он это отслеживает и увеличивает память при необходиомсти). Вот тебе пояснение.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.027 c