PDA

Показать полную графическую версию : [решено] Создание структуры и множества


morgan1991
25-03-2009, 17:33
Здравствуйте!
Скажите пожалуйста возможно ли на Autoit создать структуру и множество?

Creat0R
25-03-2009, 23:20
Структуры возможно, а что такое «множество» я так и не понял, может это массивы?

proxy
25-03-2009, 23:28
DllStructCreate ;)

справка рулит (rtfm) )))

morgan1991
26-03-2009, 00:00
Сори я видел в справке DllStructCreate просто сначала подумал что оно нужно для создания структуры в библиотеке.
Но всеравно какаято странная команда например чтобы получить данные нужно использовать
DllStructGetData ( Struct, Element [, index ] )
В то время как в других язык можно получить данные так
Struct.Element[index]
а что такое «множество» »
Например в паскале множество создается так:

program name;
type mnog=set of byte; {Тип множество }
var a:mnog; {a типа mnog}
temp:char;
BEGIN
temp:='a';
a:=['a','b','c'];
if (temp in a) then writeln('В переменной temp есть либо a либо b либо c');
END.

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

Creat0R
26-03-2009, 00:09
в других язык можно получить данные так »
Неужели намного проще/короче? :)

В Паскале под множественным типом понимается конечная совокупность элементов, принадлежащих некоторому базовому типу данных
Ну это могут быть и массивы (Array)...

morgan1991
26-03-2009, 01:00
Ну это могут быть и массивы (Array)... »
Т.е. можно сделать так?

if string in array then msgbox(0, "", "")

proxy
26-03-2009, 01:24
имеешь в виду такое:

Local $sString = 'Строка agk673qwikyg'
Local $aArray[3] = ['Массив', 1, $sString]

_Check(IsArray($aArray), $aArray)
_Check(IsArray($sString), $sString)

Func _Check($iIsArray, $vWhatCheck)
If $iIsArray == 1 Then
MsgBox(64, 'Внимание', 'Проверяется: ' & $vWhatCheck & @CRLF & 'Результат проверки: ' & $iIsArray & @CRLF & @CRLF & 'Переменная массив')
Else
MsgBox(64, 'Внимание', 'Проверяется: ' & $vWhatCheck & @CRLF & 'Результат проверки: ' & $iIsArray & @CRLF & @CRLF & 'Переменная НЕ массив')
EndIf
EndFunc

Creat0R
26-03-2009, 01:53
Т.е. можно сделать так? »
Для этого массив не нужен:


$sVar = "This is a Test"
$sTest = "Test"

If StringInStr($sVar, $sTest) Then MsgBox(64, 'Title', StringFormat('$sTest ("%s") found in $sVar ("%s")', $sTest, $sVar))

А если всё же в массиве нужно, тогда так:


Dim $aArray[5] = [4, "This", "is", "a", "Test"]
$sTest = "Test"

For $i = 1 To $aArray[0]
If $aArray[$i] = $sTest Then MsgBox(64, 'Title', StringFormat('$sTest ("%s") found in $aArray (element [%i])', $sTest, $i))
Next




© OSzone.net 2001-2012