Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.03.23;
Скачать: [xml.tar.bz2];

Вниз

код по последовательному поиску имени в массиве элементов   Найти похожие ветки 

 
Sonia ©   (2008-02-22 10:55) [0]

Всем привет!!! Извиняюсь за дурацкий вопрос, тока не посылайте, пожалуйста, никуда :(.
Вот представлен код по последовательному поиску имени в массиве элементов:

function SeqSearch(aStrs:PStringArray; aCount: integer; const aname:string) : integer;
var i:integer;
begin
for i:=0 to Pred(aCount) do
 if CompareText(aStrs^[i], aname)=0 then begin
  Result:=i;
  Exit;
 end;
Result:= -1;
end;


И вот у меня такой вопрос: что означает aStrs^[i] в функции CompareText. Почему нельзя было просто aStrs[i] сделать??

PS вопрос дурацкий, не убивайте, плиз...


 
Palladin ©   (2008-02-22 10:57) [1]

я тебя пошлю к книжкам по программированию на Паскале  для начинающих, где рассказывается про указатели и с чем их едят...


 
Сергей М. ©   (2008-02-22 10:58) [2]


> Почему нельзя было просто aStrs[i] сделать?


Почему нельзя ? Можно.
Для компилятора в дан.случае конструкция с крышкой полностью эквивалентна конструкции без крышки, как что крышку можно смело убрать.


 
Правильный_Вася   (2008-02-22 10:59) [3]

потому что это указатель, ты на тип параметра посмотри

> for i:=0

место потенциального глюка
не все массивы начинаются с нуля


 
Sonia ©   (2008-02-22 10:59) [4]


> я тебя пошлю к книжкам по программированию на Паскале  для
> начинающих, где рассказывается про указатели и с чем их
> едят...

:(((( Честно честно, не работала еще с указателями на Паскале :(((


 
Sonia ©   (2008-02-22 11:01) [5]


> место потенциального глюка
> не все массивы начинаются с нуля

как не все???? а какие не начинаются??


> потому что это указатель, ты на тип параметра посмотри

Кстати, не нашла в справке по Дельфи тип PStringArray. Означает ли это что я не так искала или что это созданный ручками тип?


 
Ega23 ©   (2008-02-22 11:03) [6]


> как не все???? а какие не начинаются??
>


myarray : array[18..255] of Integer;

:)


 
Sonia ©   (2008-02-22 11:05) [7]


> Ega23 ©   (22.02.08 11:03) [6]

Ну я не имею в виду, объявленные статически ;)


 
Ega23 ©   (2008-02-22 11:11) [8]


> Ну я не имею в виду, объявленные статически ;)


for i:=Low(arr) to High(arr) do
 arr[1] ....


:)


 
Sonia ©   (2008-02-22 11:15) [9]


> Ega23 ©   (22.02.08 11:11) [8]

Ну да, так ессно лучше :).
Ой, ребята!!! Спасибо всем!!!!

ЗЫ Спасибо, что не посылали далеко ! :)))))


 
Дмитрий С   (2008-02-22 11:51) [10]

да PStringArray полюбому определен как массив с нуля=)


 
Johnmen ©   (2008-02-22 12:05) [11]


> Дмитрий С   (22.02.08 11:51) [10]
> да PStringArray полюбому определен как массив с нуля=)

Да ты шо??? Со свечкой стоял?


 
Смирнов   (2008-02-22 13:02) [12]

тот, кто писал процедуру SeqSearch, скорее всего и тип PStringArray объявлял и знает, с чего он начинается.


 
Dmitry S ©   (2008-02-22 14:15) [13]


> Johnmen ©   (22.02.08 12:05) [11]

Я думал он с генофонда:) Пардон тоды


 
Amoeba ©   (2008-02-22 15:26) [14]


> Dmitry S ©   (22.02.08 14:15) [13]
>
>
> > Johnmen ©   (22.02.08 12:05) [11]
>
> Я думал он с генофонда:) Пардон тоды

Такого в генофонде отродясь не было.


 
Sapersky   (2008-02-22 18:22) [15]

Есть подозрение, что PStringArray определён как:
 PStringArray = ^TStringArray;
 TStringArray = array [0..0] of String;
(обычно с P начинаются имена типов-указателей).
В этом случае Low, High для PStringArray вообще не имеют смысла - это не массив, это типизированный указатель. Базовый тип TStringArray теоретически может начинаться не с нуля, но это редкое (во всех смыслах) извращение. Если так уж хочется учесть все-все случаи, можно написать:
For n := Low(aStrs^) to Low(aStrs^) + aCount-1 do
Использовать High совершенно точно не стоит, т.к. работаем с указателем, сколько там памяти выделено на самом деле - определяется параметром aCount (в данном случае), а вовсе не размерностью базового типа, которая в принципе может быть любой.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.03.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.007 c
2-1203575014
vegarulez
2008-02-21 09:23
2008.03.23
Вопрос про TEdit. Как отследить ввод тока цифр.


2-1204001712
None
2008-02-26 07:55
2008.03.23
Ширина вертикальной прокрутки в Tscrollbox


6-1183210878
Kor
2007-06-30 17:41
2008.03.23
Обмен данными через Dial-up модем.


15-1202597190
Андрей
2008-02-10 01:46
2008.03.23
разбирайте кто хочет


15-1202824478
Iam
2008-02-12 16:54
2008.03.23
Бесплатная междугородняя IP-телефония





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский