Цитата:
Сообщение от seeman_tm
to poli-smen
Ты меня забавляешь, у тебя или со зрением проблема или недостаток внимания.
|
Забавляйся сколько душе угодно, я же тебе не запрещу?
Со зрением у меня никогда проблем не было, хотя вплотную занимаюсь компьютерами ещё с детства.
Когда на работе делаю несколько дел одновременно, внимание конечно снижается - здесь согласен - виноват.
Цитата:
Сообщение от seeman_tm
В каком месте ты увидел что идёт сравнение одной и тойже строки а не двух одинаковых ?
|
Разве у тебя в Delphi сломался отладчик, что ты не можешь посмотреть, что обе переменные указывают на одну и ту же строку? Или, если ты не умеешь работать с отладчиком, мог бы сделать для проверки хотя бы так:
Код:
function Test(Str1, Str2: String): Extended;
var
i: Integer;
tic1, tic2: DWORD;
begin
if Pointer(Str1) = Pointer(Str2) then
raise Exception.Create('Эй! Мне подсунули одну и ту же строку. Нечего халтурить!');
.....
Цитата:
Сообщение от seeman_tm
При чём тут мой тест ? Код моего теста на форум не выкладывался. Везде твои исходники, за исключением закомментированных двух нахрен не нужных строк.
|
Именно этот тест я и назвал твоим - ты закомментировал в моём тесте UniqueString даже не задумавшись о том зачем они там были нужны.
Хорошо. Вот тебе ещё один тест. Если и он тебя не убедит в твоей неправоте - тогда я пас.
Код:
function Test(Str1, Str2: String): Extended;
var
i: Integer;
tic1, tic2: DWORD;
begin
tic1 := GetTickCount;
for i := 1 to 10000000 do
begin
if Str1 = Str2 then;
end;
tic2 := GetTickCount;
Result := (tic2 - tic1) / 1000;
end;
procedure TForm1.Button1Click(Sender: TObject);
const
alphabet: String = 'qwertyuiopйцукенгшщз'; // Список символов которые будут использованы в строках
var
s1, s2, s3: String;
i: Integer;
c: Char;
begin
// Будет три больших строки
SetLength(s1, 10000);
SetLength(s2, 10000);
SetLength(s3, 10000);
// Заполняем эти строки случайными символами из списка alphabet
for i := 1 to Length(s1) do
begin
c := alphabet[Random(Length(alphabet)+1)]; // Получаем случайный символ из списка alphabet
s1[i] := c; // Строки s1 и s2 будем заполнять одним и тем же набором символов
s2[i] := c; // поэтому эти строки будут одинаковыми
c := alphabet[Random(Length(alphabet)+1)]; // Получаем другой случайный символ из списка alphabet
s3[i] := c; // А s3 будем заполнять другим набором символов
end;
// Всё готово для теста
ShowMessageFmt('Сравнение одной и той же строки заняло %g сек, одинаковых строк заняло %g сек'+
' и разных строк заняло %g сек', [Test(s1, s1), Test(s1, s2), Test(s1, s3)]);
end;
Цитата:
Сообщение от seeman_tm
От чего в первом исходнике была обнаружена разница в показаниях и показана для особо одарённых в картинках. Но ты упёрся во что то своё и пытаешься доказать то ты не тот кем на самом деле являешься.
|
О каком таком великом разоблачении идёт речь?
В любом случае я устал бить горохом о стену. Если кто-то упёрто считает что одинаковые строки должны сравниваться быстрее различных - это его проблема, а не моя. Согласен?