|
#1
|
||||
|
||||
Запутался
Нужно записать в одну бд рандомные записи другой.
Код:
procedure TForm2.nom; var s,q,t,si,er:integer; search2:boolean; nom,war: array of integer; begin s:=form1.lb.ItemIndex; ado.TableName:=form1.lb.Items.strings[s]; ado.Open ; setlength(nom,0); for q:=0 to ado.RecordCount do begin setlength(nom,length(nom)+1); nom[q]:=ado.Fields[5].AsInteger ; end; si:=ado.RecordCount ; randomize; setlength(war,0); while length(war)<si do begin er:=random(si); search2:=false; for t:=0 to high(war) do if war[t]=er then begin search2:=true;break; end; if search2 then continue; setlength(war,length(war)+1); war[high(war)]:=er; end; for t:=0 to high(war) do begin adon.insert; adon.fields[1].asinteger:=nom[war[i]]; adon.post; end; end; Что я пропустил? Алкоголик-аморал, явная угроза обществу Блин, я уже местный, а все равно нифига не знаю... Последний раз редактировалось Лунтик-Некрофил, 01.03.2010 в 21:52. |
#2
|
|||
|
|||
Странно, что для элементов массива war память выделяется [setlength(war,length(war)+1);], а для nom нет.
Код:
begin si:=adotable1.RecordCount; setlength(nom, si); for ... ... |
#3
|
||||
|
||||
Код:
setlength(nom,length(nom)+1); Алкоголик-аморал, явная угроза обществу Блин, я уже местный, а все равно нифига не знаю... |
#4
|
||||
|
||||
Не могу найти, где промазал( вся надежда на Вас, а то плакал мой курсовиг(
Алкоголик-аморал, явная угроза обществу Блин, я уже местный, а все равно нифига не знаю... |
#5
|
|||
|
|||
Код:
for t:=0 to high(war) do begin adon.insert; adon.fields[1].asinteger:=nom[war[i]]; adon.post; end; P.S. И мой тебе совет, обращаясь сюда за помощью, не держи других за идиотов. |
#6
|
||||
|
||||
Переменная i взялась из предыдущего массива, её замена на t ничего не меняет.
Цитата:
Алкоголик-аморал, явная угроза обществу Блин, я уже местный, а все равно нифига не знаю... |
#7
|
|||
|
|||
Если взять код из первого поста, то он просто не компилируется, т.к. i не объявлена локально в секции var. Поэтому утверждать, что ничего не меняется при замене ее на t (исходя из приведенного кода) достаточно легкомысленно.
У меня этот код нормально работает в части присвоения значений в массивах (если, конечно, заменить i на t). Последний раз редактировалось Vocabulary, 02.03.2010 в 08:35. |
#8
|
||||
|
||||
Объявлял новую локальную переменную, подставлял вместо i - ноль результата( В конечном итоге получаю 20 нелепых записей в таблицу, причем все они равны единице(
Алкоголик-аморал, явная угроза обществу Блин, я уже местный, а все равно нифига не знаю... |
#9
|
||||
|
||||
Ппц, Vocabulary, сорри за испорченные нервы)
Я просто при записи в массив забыл поставить переход на следующую запись в таблице)) Спасибо) Тема думаю еще актуальна, т.к. кажись ошибочки небольшие появились. Алкоголик-аморал, явная угроза обществу Блин, я уже местный, а все равно нифига не знаю... |