Вверх ↑
Этот топик читают: Гость
Ответов: 3655
Рейтинг: 69
#1: 2007-01-13 23:24:01 ЛС | профиль | цитата
Запустите пример
Вопрос :
И где циферки code_819
карма: 0

0
файлы: 1code_819.txt [1.1KB] [382]
Ответов: 9906
Рейтинг: 351
#2: 2007-01-13 23:28:45 ЛС | профиль | цитата
И не должно их быть

Один из пунктов отличия программиста от нормального человека, является то, что первый начинает считать с нуля, а второй с единицы
карма: 9

0
Ответов: 3655
Рейтинг: 69
#3: 2007-01-13 23:44:42 ЛС | профиль | цитата
Galkov, И что это нормально
Я немогу прочитать первую строку.
Может что то в консерватории подправить(цитата)
карма: 0

0
Ответов: 9906
Рейтинг: 351
#4: 2007-01-13 23:51:48 ЛС | профиль | цитата
Нормально
К примеру я - могу
карма: 9

0
Ответов: 2060
Рейтинг: 28
#5: 2007-01-13 23:56:08 ЛС | профиль | цитата
Вячеслав, ты действительно не можешь прочитать первую стоку или просто прикалываешься?
code_820
карма: 1

0
файлы: 1code_820.txt [1.2KB] [389]
Ответов: 3655
Рейтинг: 69
#6: 2007-01-14 00:05:49 ЛС | профиль | цитата
Эдик, Не подходит совершенно
Я ведь не зря применил массив для чтения данных,так как вводимые данные
могут изменятся (может быть как одна строка так и много )
И при чтении одной стороки её увы НЕТ.
Это пример из реальной программы.

Но как видишь Galkov, считает что это нормально.
карма: 0

0
Ответов: 2060
Рейтинг: 28
#7: 2007-01-14 00:17:26 ЛС | профиль | цитата
Вячеслав, это не глюк это вроде всегда так было. Не ясна твоя задача. У тебя в Rich и Memo будут находиться одинаковое количество строк или нет?

[size=-2]------ Добавлено в 00:17
Вячеслав, Может это тебе нужно?
code_821
карма: 1

0
файлы: 1code_821.txt [1.1KB] [383]
Ответов: 3655
Рейтинг: 69
#8: 2007-01-14 00:30:28 ЛС | профиль | цитата
Эдик,
Эдик писал(а):
это не глюк это вроде всегда так было. Не ясна твоя задача. У тебя в Rich и Memo будут находиться одинаковое количество строк или нет?

Нет можно применить что то одно или Rich или Memo(это я для примера поставил два)

[size=-2]------ Добавлено в 00:30
Эдик, В реальной программе выглядит так code_822
карма: 0

0
файлы: 1code_822.txt [1.4KB] [360]
Ответов: 2060
Рейтинг: 28
#9: 2007-01-14 00:39:38 ЛС | профиль | цитата
Вячеслав, Может это?
code_823
карма: 1

0
файлы: 1code_823.txt [1.7KB] [359]
Ответов: 3655
Рейтинг: 69
#10: 2007-01-14 01:09:28 ЛС | профиль | цитата
Эдик, А где слово Да
карма: 0

0
Ответов: 899
Рейтинг: 43
#11: 2007-01-14 05:39:37 ЛС | профиль | цитата
1-я строка имеет индекс 0
Вячеслав, используя точку Count(кол-во строк в списке), читает элемент с индексом 1 т.е. вторую строку

code_825

Пример
Add(MainForm,12936631,91,42)
{
Left=20
Top=105
Width=337
Height=144
link(onCreate,4739738:doData,[])
}
Add(Button,879160,98,168)
{
Left=125
Top=20
Width=165
Caption="Нажми на меня"
link(onClick,14041704:doEvent1,[])
}
Add(Edit,9275209,273,168)
{
Left=270
Top=55
Width=45
Text=""
}
Add(StringTable,14347829,210,77)
{
Left=10
Top=15
Width=100
Columns=#15:Список строк=95|
Point(Index)
}
Add(Edit,1986681,266,217)
{
Left=270
Top=80
Width=45
Text=""
}
Add(Label,10549494,98,126)
{
Left=125
Top=80
Width=83
Height=17
Caption="Значение Count"
}
Add(DoData,4773138,210,217)
{
link(onEventData,1986681:doText,[])
link(Data,14347829:Count,[])
}
Add(DoData,9493112,224,168)
{
link(onEventData,9275209:doText,[])
link(Data,14347829:Index,[])
}
Add(Hub,14041704,154,168)
{
link(onEvent1,9493112:doData,[])
link(onEvent2,4773138:doData,[(198,181)(198,223)])
}
Add(Label,13736668,147,126)
{
Left=125
Top=55
Width=139
Height=17
Caption="Индекс выбранной строки"
}
Add(DoData,4739738,140,77)
{
Data=String(Выбери меня)
link(onEventData,14347829:doAdd,[])
}
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
файлы: 1code_825.txt [1.6KB] [284]
Гость
Ответов: 17029
Рейтинг: 0
#12: 2007-01-14 15:45:33 правка | ЛС | профиль | цитата


Редактировалось 4 раз(а), последний 2021-05-21 12:40:39
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#13: 2007-01-14 16:10:26 ЛС | профиль | цитата
Вячеслав, неправ.
Count - число строк в списке
Index - номер строки в списке
Как говорит Dilma - исторически так сложилось, что програмисты считают с 0
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Администрация
Ответов: 15295
Рейтинг: 1519
#14: 2007-01-15 15:54:27 ЛС | профиль | цитата
Так не исторически сложилось. Номер первого индекса в массиве связан с техническими реализациями этого самого массива на процессорном уровне. Вот пример: положим у нас есть массив из 4 элементов типа integer тогда в Delphi обращение к ним запишется так:
arr[0]
arr[1]
arr[2]
arr[3]

после компиляции эти записи будут преобразованы в:

integer(arr + 0*4)^
integer(arr + 1*4)^
integer(arr + 2*4)^
integer(arr + 3*4)^

т.е. как можно заметить чтение и запись любого элемента в массиве это всегда смещение базового адреса массива на нужный индекс элемента с учетом его типа. Поэтому:

arr[i] => integer(arr + i*4)^[/code]

а теперь представим, что мы делаем первым индексом массива 1. Поскольку на уровне процессора таких команд нет, то у компилятора остается только один выход из создавшегося положения - искуственно приводить индекс массива к 0. Т.е. делать так:

arr[i] => integer(arr + (i-1)*4)^[/code]

и тем самым заведомо на порядок ухудшать эффективность работы с массивами. Так что лучше заранее привыкать к тому, что первый элемент массива имеет индекс 0.
карма: 27
0
Ответов: 3655
Рейтинг: 69
#15: 2007-01-15 16:05:25 ЛС | профиль | цитата
Dilma, Так как раз Count то выдаёт 1 ,а не 0.
Вот я и говорю надо привести его к 0 .
А пустая строка будет -1.
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)