ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #5701  
Старый 08.03.2010, 17:22
Аватар для fenixelite
fenixelite
Участник форума
Регистрация: 07.02.2010
Сообщений: 189
Провел на форуме:
870084

Репутация: 79
Отправить сообщение для fenixelite с помощью ICQ
По умолчанию

там числовой индекс указывается. test1[1] , test[2] и т.д.. По крайней мере в Delphi так.
 
Ответить с цитированием

  #5702  
Старый 08.03.2010, 17:31
Аватар для НTL
НTL
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме:
5209663

Репутация: 357


Отправить сообщение для НTL с помощью ICQ
По умолчанию

Цитата:
Сообщение от fenixelite  
там числовой индекс указывается. test1[1] , test[2] и т.д.. По крайней мере в Delphi так.
Жаль, в PHP можно и имя назначить
 
Ответить с цитированием

  #5703  
Старый 08.03.2010, 17:33
Аватар для GhostOnline
GhostOnline
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме:
828081

Репутация: 84
По умолчанию

Не надо 2 массивов если работаешь с текстом. есть варианты проще:
TStringList
Код:
Пример кода : Использование строк название-значение var   names  : TStringList;            // Определение нашей переменной списка строк   ageStr : String;   i      : Integer; begin   // Определение объекта списка строк, и указание нашей переменной на него   names := TStringList.Create;    // Теперь добавляем несколько названия в наш список   names.CommaText := 'Neil=45, Brian=63, Jim=22';    // И теперь находим возраст Брайена   ageStr := names.Values['Brian'];    // Показ этого значения   ShowMessage('Возраст Brian'а = '+ageStr);    // Теперь отображаем все имена и значение возраста   for i := 0 to names.Count-1 do   begin     ShowMessage(names.Names[i]+' - '+names.ValueFromIndex[i]);   end; end; Возраст Brian'а 63 Neil - 45 Brian - 63 Jim - 22
Источник: http://delphibasics.ru/TStringList.php
Самое то для таких вещей
И имена можно использовать

Последний раз редактировалось GhostOnline; 08.03.2010 в 17:36..
 
Ответить с цитированием

  #5704  
Старый 08.03.2010, 17:35
Аватар для fenixelite
fenixelite
Участник форума
Регистрация: 07.02.2010
Сообщений: 189
Провел на форуме:
870084

Репутация: 79
Отправить сообщение для fenixelite с помощью ICQ
По умолчанию

В общем сделал в 2 массивами, думаю сам разберешься, что к чему.
http://slil.ru/28760299
 
Ответить с цитированием

Помогите организовать поиск
  #5705  
Старый 08.03.2010, 17:35
Аватар для NTFF
NTFF
Новичок
Регистрация: 09.12.2009
Сообщений: 23
Провел на форуме:
42989

Репутация: 0
По умолчанию Помогите организовать поиск

program Records;
uses
crt, strings;
const
max = 100;
type

Ttrain = record
Otpravlenie : string[40];
Pribitie : string[40];
Category : string[10];
Time : string[10];
Number : string[10];
end;

Ttrains = array [1..max] of Ttrain;


procedure SngWindow(x1,y1,x2,y2,tc,c : byte);
begin
window(x1,y1,x2,y2);
textbackground(c); textcolor(tc);
clrscr;
end;


procedure DblWindow(x1,y1,x2,y2,tcolor, c1, c2 : byte);
begin
window(x1,y1,x2,y2);
textbackground(c1);
clrscr;
window(x1+1,y1+1,x2-1,y2-1);
textbackground(c2);
textcolor(tcolor);
clrscr;
end;


function Menu : byte;
var
punkt : byte;
er : integer;
s : string;
begin

SngWindow(1,1,80,25,WHITE,BLACK);

SngWindow(1,6,80,25,WHITE,BLUE);

repeat

DblWindow(1,1,80,5,YELLOW,MAGENTA,BLUE);
writeln;
write(' 1.ADD 2.DELETE 3.PRINT 4.SEARCH 5.EXIT');
readln(s);
val(s,punkt,er);
until (er=0) and (punkt>=1) and (punkt<=5);
Menu := punkt;
end;


function SubMenu : byte;
var
punkt : byte;
er : integer;
s : string;
begin

SngWindow(1,1,80,25,WHITE,BLACK);

SngWindow(1,6,80,25,WHITE,BLUE);

repeat
{Нарисовать окно для главного меню}
DblWindow(1,1,80,5,YELLOW,MAGENTA,BLUE);
writeln;
write(' 1.Otpravlenie 2.Pribitie 3.Number 4.Exit');
readln(s); {ввод номера пункта меню}
val(s,punkt,er);
until (er=0) and (punkt>=1) and (punkt<=4);
SubMenu := punkt;
end;


procedure AddRecord(var mas : Ttrains; var n : byte; size : byte);
var
s : String;
er : integer;
begin

if (n+1 <= size) then
begin
inc(n);

write('Otpravlenie =>'); readln(mas[n].Otpravlenie);
write('Pribitie =>'); readln(mas[n].Pribitie);
write('Category =>'); readln(mas[n].Category);
write('Time =>'); readln(mas[n].Time);
write('Number =>'); readln(mas[n].number);

writeln('Книга добавлена в каталог!');
end
else writeln('Недостаточно места в каталоге!');
end;


procedure PrintRecord(var mas : Ttrains; i : integer);
begin
write(i:3);
with mas[i] do
begin
write(Otpravlenie:23); write(Pribitie:20);
write(Category:10); write(Time:10);
write(Number:12);
writeln;
end;
end;

procedure Print(var mas : Ttrains; n : integer);
var
i : integer;
begin
writeln('#':3,'Otpravlenie':23,'Pribitie':20,'Cate gory':10,'Time':10,'Number':12);
for i:=1 to n do
PrintRecord(mas,i);
end;


procedure DelRecordByName(var mas : Ttrains; var n : byte; bname : string);
var
i,j : integer; {номера книг в каталоге}
begin
writeln('#':3,'Otpravlenie':23,'Pribitie':20,'Cate gory':10,'Time':10,'Number':12);

for i:=1 to n do
begin
with mas[i] do

if (Otpravlenie = otpravlenie) then
begin
PrintRecord(mas,i);

for j:=i+1 to n do
mas[j-1] := mas[j];

dec(n);
end;
end;
end;


procedure FindByname(var mas : Ttrains; n : integer; botpravlenie : string);
var
i : integer;
begin
writeln('#':3,'Otpravlenie':23,'Pribitie':20,'Cate gory':10,'Time':10,'Number':12);

for i:=1 to n do
with mas[i] do

if otpravlenie=botpravlenie then PrintRecord(mas,i);
end;

procedure FindByauthor(var mas : Ttrains; n : integer; ba, bst : string);
var
i : integer;
begin
writeln('#':3,'Otpravlenie':23,'Pribitie':20,'Cate gory':10,'Time':10,'Number':12);

for i:=1 to n do
with mas[i] do

if (pribitie=ba) and (Category=bst) then PrintRecord(mas,i);
end;


procedure FindByyear(var mas : Ttrains; n : integer; Number : string);
var
i : integer;
begin
writeln('#':3,'Otpravlenie':23,'Pribitie':20,'Cate gory':10,'Time':10,'Number':12);

for i:=1 to n do
with mas[i] do

if number=number then PrintRecord(mas,i);
end;

var
b : Ttrains;
n : byte;
punkt : byte;
subpunkt : byte;
trainotprav,
a,
st : string;
y : string;
s : string;
er : integer;

begin
n := 0;
SngWindow(1,1,80,25,WHITE,BLACK);
repeat
punkt:= Menu;
case (punkt) of
1:begin
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' ADD train');
AddRecord(b,n,max);
readkey;
end;
2:begin
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' Delete by otpravlenie');

write('Otpravlenie =>');
readln(trainotprav);

DelRecordByName(b,n,trainotprav);
readkey;
end;
3:begin
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' Catalog of trains');
Print(b,n);
readkey;
end;
4:begin
repeat
subpunkt := SubMenu;
case (subpunkt) of
1:begin
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' Train by otpravlenie ');

write('Otpravlenie =>');
readln(trainotprav);

readkey;
end;
2:begin
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' Train by pribitie and category ');

write('Pribitie =>');
readln(a);

write('Category =>');
readln(st);


readkey;
end;
3:begin
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' Train by number ');

write('number =>');
readln(y);

readkey;
end;
end;
until (subpunkt = 4);
end;
end;
until (punkt = 5);
SngWindow(1,1,80,25,WHITE,BLACK);
end.
сделать поиск
по станциям прибытия
по станциях лтправления
по времени в пути
по номеру
 
Ответить с цитированием

  #5706  
Старый 08.03.2010, 17:37
Аватар для НTL
НTL
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме:
5209663

Репутация: 357


Отправить сообщение для НTL с помощью ICQ
По умолчанию

Цитата:
Сообщение от GhostOnline  
Не надо 2 массивов если работаешь с текстом. есть варианты проще:
TStringList
Код:
Пример кода : Использование строк название-значение var   names  : TStringList;            // Определение нашей переменной списка строк   ageStr : String;   i      : Integer; begin   // Определение объекта списка строк, и указание нашей переменной на него   names := TStringList.Create;    // Теперь добавляем несколько названия в наш список   names.CommaText := 'Neil=45, Brian=63, Jim=22';    // И теперь находим возраст Брайена   ageStr := names.Values['Brian'];    // Показ этого значения   ShowMessage('Возраст Brian'а = '+ageStr);    // Теперь отображаем все имена и значение возраста   for i := 0 to names.Count-1 do   begin     ShowMessage(names.Names[i]+' - '+names.ValueFromIndex[i]);   end; end; Возраст Brian'а 63 Neil - 45 Brian - 63 Jim - 22
Источник: http://delphibasics.ru/TStringList.php
Самое то для таких вещей
И имена можно использовать
Надо через ' '(Пробел), а не через '='
 
Ответить с цитированием

  #5707  
Старый 08.03.2010, 17:39
Аватар для GhostOnline
GhostOnline
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме:
828081

Репутация: 84
По умолчанию

Вообще-то, разделитель вроде как можно изменять, написано в том мане. По дефолту - да, стоит "="

Не, в том мане нет, ну вообще вот так:

Цитата:
В свойстве Names содержится текст до знака равенства. В свойстве values содержится текст после знака равенства по умолчанию. Однако символ-разделитель можно заменить на любой другой, использовав свойство property NameValueSeparator: Char; Доступ к значениям свойства values осуществляется по значению. Например, если в списке есть строка City=Saint-Petersburg то значение свойства value будет равно Value['City'] = 'Saint-Petersburg' Кроме этого, значение свойства value можно получить, если известен его индекс: property ValueFormlndex[Index: Integer]: string;

Последний раз редактировалось GhostOnline; 08.03.2010 в 17:44..
 
Ответить с цитированием

  #5708  
Старый 08.03.2010, 17:40
Аватар для fenixelite
fenixelite
Участник форума
Регистрация: 07.02.2010
Сообщений: 189
Провел на форуме:
870084

Репутация: 79
Отправить сообщение для fenixelite с помощью ICQ
По умолчанию

НTL, мой глянь, может устроит
 
Ответить с цитированием

  #5709  
Старый 09.03.2010, 17:37
Аватар для ErrorNeo
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме:
4297091

Репутация: 2261


Отправить сообщение для ErrorNeo с помощью ICQ
По умолчанию

вопрос:
Win7
запускаем программу, имеем варнинг:
Код:
User Account Control
Do you want to allow the following program from an unknown publisher make changes 
to this computer?
как программно нажать "Yes"?

Пробовал мышью:
Код:
var TI:TInput;
begin
TI.Itype:=0;
TI.mi.dx:= 37000;
TI.mi.dy:= 37000;
TI.mi.mouseData:=0;
TI.mi.time:=0;
TI.mi.dwFlags:=MOUSEEVENTF_MOVE+MOUSEEVENTF_ABSOLUTE;
SendInput(1,TI,sizeof(TI));
TI.mi.dwFlags:=MOUSEEVENTF_LEFTDOWN;
SendInput(1,TI,sizeof(TI));
TI.mi.dwFlags:=MOUSEEVENTF_LEFTUP;
SendInput(1,TI,sizeof(TI));
end.
- под Win7 не катит.
Код:
SetCursorPos(500, 500);
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, 500, 500, 0,0);
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, 500,500,0,0)
- под Win7 срабатывает, даже setpos не выполняется.

Пробовал клавой:
Код:
procedure SetKey(Key:Integer);
begin
  keybd_event(Key,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
  keybd_event(Key,0,KEYEVENTF_EXTENDEDKEY,0);
  keybd_event(Key,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
end;

begin
   SetKey(VK_LEFT);
   SetKey(VK_RETURN);
end;
- сам по себе код работает (на активном окне), но конкретно на этом варнинге - нет.

Не сильно рассчитываю на ответ, но если кто-то сталкивался - скажите)

Последний раз редактировалось ErrorNeo; 09.03.2010 в 17:51..
 
Ответить с цитированием

  #5710  
Старый 09.03.2010, 17:52
Аватар для fenixelite
fenixelite
Участник форума
Регистрация: 07.02.2010
Сообщений: 189
Провел на форуме:
870084

Репутация: 79
Отправить сообщение для fenixelite с помощью ICQ
По умолчанию

Хмм странно. Только что попробовал имитировать нажатие мыши на Win7, все получилось! Попробуй это

Код:
GetCursorPos(A)  // узнать текущее положение мыши (где A : TPoint)
SetCursorPos(X,Y) // установить новое положение мыши
mouse_event(MOUSEEVENTF_LEFTDOWN,X,Y,0,0) //нажать левой кнопки
mouse_event(MOUSEEVENTF_LEFTUP,X,Y,0,0) //отпустить левую кнопку
P.S наверное твоя проблема в том, что ты GetCursorPos(A) упустил

Последний раз редактировалось fenixelite; 09.03.2010 в 17:54..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/WPAN/WLAN 2564 06.04.2026 23:31
[ *NIX ] Задай вопрос - получи ответ. Xszz *nix 1547 15.06.2010 15:41
[jQuery] - Задай вопрос, получи ответ Isis PHP, PERL, MySQL, JavaScript 62 25.12.2009 03:25
ЕсТь ВоПрос Guma Чаты 4 26.10.2005 21:48



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ