PDA

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


Cem
24-02-2014, 18:08
Доброго времени суток! Помогите, пожалуйста, с командами и синтаксисом.
Задача:
Имеется текстовый документ 1.txt:
1.Собака
2.D:\Image\Собака.jpeg
3.D:\Video\Собака.mpeg
4.
5.Кот
6.D:\Image\Кот.jpeg
7.D:\Video\Кот.mpeg
8.
9.Черепаха
10.D:\Image\Черепаха.jpeg
11.D:\Video\Черепаха.mpegНомера строк приведены для указания того, что между строками бывают и пустые. В самом текстовом документе нумерации строк нет.
Собака
D:\Image\Собака.jpeg
D:\Video\Собака.mpeg

Кот
D:\Image\Кот.jpeg
D:\Video\Кот.mpeg

Черепаха
D:\Image\Черепаха.jpeg
D:\Video\Черепаха.mpeg

Через InputBox мы вводим название животного. Находим его в тексте:
$VesText = FileRead("1.txt")
$Jivotnoe = InputBox("Название", "Введите животное:", "Здесь вводим", "", 250, 150, Default, Default, 0)
$a = StringRegExp($VesText, $Jivotnoe, 1)
MsgBox(0, '', $a[0])

Теперь вопрос: После того как мы нашли животное, например, Кот (5 строка в документе), как присвоить переменной $kartinka значение "D:\Image\Кот.jpeg" (6 строка), а переменной $video - "D:\Video\Кот.mpeg" (7 строка)?

Iska
24-02-2014, 23:38
Номера строк приведены для указания того, что между строками бывают и пустые. В самом текстовом документе нумерации строк нет. »
Это лишнее. Достаточно оформить текст тэгом (http://forum.oszone.net/misc.php?do=bbcode#code) (что Вы и так сделали), либо, если важно сохранить кодировку, вид концов строк и т.п. — упаковав файл в архив.

Теперь вопрос: После того как мы нашли животное, например, Кот (5 строка в документе), как присвоить переменной $kartinka значение "D:\Image\Кот.jpeg" (6 строка), а переменной $video - "D:\Video\Кот.mpeg" (7 строка)? »
Например, так:
[code]#include <Array.au3>

AutoItSetOption("MustDeclareVars", 1)

Local $aContent = StringSplit(FileRead("1.txt"), @CRLF, 3)
Local $sName = InputBox("Название", "Введите животное:", "Здесь вводим", "", 250, 150, Default, Default, 0)

Local $lIndex = _ArraySearch($aContent, $sName)

if $lIndex >=0 Then
MsgBox(1, "", $aContent[$lIndex + 1])
MsgBox(1, "", $aContent[$lIndex + 2])
EndIf

Крайне рекомендую перевести Ваш текстовый файл в формат ini-файла и пользовать соответствующие функции.

Cem
25-02-2014, 02:03
Спасибо! Как оказалось, всё гениальное действительно просто.

Local $aContent = StringSplit(FileRead("1.txt"), @CRLF, 3) »
Только тут, пожалуй, лучше поставить 1.
Local $aContent = StringSplit(FileRead("1.txt"), @CRLF, 1)

Сложил было, что-то такое, но коряво работает.

$VesText = FileRead("1.txt")
$Jivotnoe = InputBox("Название", "Введите животное:", "Здесь вводим", "", 250, 150, Default, Default, 0)
$a = StringRegExp($VesText, $Jivotnoe, 2, 1)

$aLines = StringSplit($VesText, @CRLF, 1) ;Разбиваем текст на строки, строки помещаем в массив

For $i = 1 To $aLines[0] Step +1
If StringInStr($aLines[$i], $Jivotnoe) Then $kartinka = $aLines[$i+1]
Next

Iska
25-02-2014, 09:20
Cem, по-прежнему настоятельно рекомендую подумать над переводом Вашего файла в формат INI, наподобие:
[Собака]
"Image"="D:\Image\Собака.jpeg"
"Video"="D:\Video\Собака.mpeg"

[Кот]
"Image"="D:\Image\Кот.jpeg"
"Video"="D:\Video\Кот.mpeg"

[Черепаха]
"Image"="D:\Image\Черепаха.jpeg"
"Video"="D:\Video\Черепаха.mpeg"

madmasles
25-02-2014, 10:51
Cem,
Можно так попробовать сделать:Local (http://www.autoitscript.com/autoit3/docs/keywords.htm#Local) $sTxt, $aSearch[3] = ['Собака', 'Кот', 'Черепаха'], $sImageFile, $sVideoFile

$sTxt = FileRead (http://autoit-script.ru/autoit3_docs/functions/FileRead.htm)(@ScriptDir (http://autoit-script.ru/autoit3_docs/macros.htm#@scriptdir) & '\tst.txt')

For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $i = 0 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) 2
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) Not (http://www.autoitscript.com/autoit3/docs/keywords.htm#Not) StringInStr (http://autoit-script.ru/autoit3_docs/functions/StringInStr.htm)($sTxt, $aSearch[$i], 1) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) Not (http://www.autoitscript.com/autoit3/docs/keywords.htm#Not) StringInStr (http://autoit-script.ru/autoit3_docs/functions/StringInStr.htm)($sTxt, StringLower (http://autoit-script.ru/autoit3_docs/functions/StringLower.htm)($aSearch[$i]), 1) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('No word "' & $aSearch[$i] & '" in text' & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
ContinueLoop (http://www.autoitscript.com/autoit3/docs/keywords.htm#ContinueLoop)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
$sImageFile = StringRegExpReplace (http://autoit-script.ru/autoit3_docs/functions/StringRegExpReplace.htm)($sTxt, '(?ims).*^([a-z].*?\\' & $aSearch[$i] & '\.j.*?)$.*', '$1')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) @extended (http://autoit-script.ru/autoit3_docs/macros.htm#@extended) <> 1 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$sImageFile = StringRegExpReplace (http://autoit-script.ru/autoit3_docs/functions/StringRegExpReplace.htm)($sTxt, '(?ims).*^([a-z].*?\\' & StringLower (http://autoit-script.ru/autoit3_docs/functions/StringLower.htm)($aSearch[$i]) & '\.j.*?)$.*', '$1')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) @extended (http://autoit-script.ru/autoit3_docs/macros.htm#@extended) <> 1 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('Can not search image file for word "' & $aSearch[$i] & '" in text' & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
ContinueLoop (http://www.autoitscript.com/autoit3/docs/keywords.htm#ContinueLoop)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
$sVideoFile = StringRegExpReplace (http://autoit-script.ru/autoit3_docs/functions/StringRegExpReplace.htm)($sTxt, '(?ims).*^([a-z].*?\\' & $aSearch[$i] & '\.m.*?)$.*', '$1')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) @extended (http://autoit-script.ru/autoit3_docs/macros.htm#@extended) <> 1 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$sVideoFile = StringRegExpReplace (http://autoit-script.ru/autoit3_docs/functions/StringRegExpReplace.htm)($sTxt, '(?ims).*^([a-z].*?\\' & StringLower (http://autoit-script.ru/autoit3_docs/functions/StringLower.htm)($aSearch[$i]) & '\.m.*?)$.*', '$1')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) @extended (http://autoit-script.ru/autoit3_docs/macros.htm#@extended) <> 1 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('Can not search video file for word "' & $aSearch[$i] & '" in text' & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
ContinueLoop (http://www.autoitscript.com/autoit3/docs/keywords.htm#ContinueLoop)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('image file for word "' & $aSearch[$i] & '": ' & $sImageFile & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('video file for word "' & $aSearch[$i] & '": ' & $sVideoFile & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('---' & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)tst.txt:Собака
D:\Image\Собака.jpeg
D:\Video\собака.mpeg

Кот
D:\Image\кот.jpeg
D:\Video\Кот.mpeg

черепаха
D:\Image\черепаха.jpeg
D:\Video\черепаха.mpeg

madmasles
25-02-2014, 11:07
Cem,
Но рекомендую Вам сделать так, как советует коллега Iska, тогда код будет примерно такой:Local (http://www.autoitscript.com/autoit3/docs/keywords.htm#Local) $sIni = @ScriptDir (http://autoit-script.ru/autoit3_docs/macros.htm#@scriptdir) & '\tst.ini', $aSearch[3] = ['Собака', 'Кот', 'Черепаха'], $sImageFile, $sVideoFile

For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $i = 0 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) 2
$sImageFile = IniRead (http://autoit-script.ru/autoit3_docs/functions/IniRead.htm)($sIni, $aSearch[$i], 'Image', 'Error')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $sImageFile = 'Error' Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$sImageFile = IniRead (http://autoit-script.ru/autoit3_docs/functions/IniRead.htm)($sIni, StringLower (http://autoit-script.ru/autoit3_docs/functions/StringLower.htm)($aSearch[$i]), 'Image', 'Error')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $sImageFile = 'Error' Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('Can not search image file for word "' & $aSearch[$i] & '" in text' & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
ContinueLoop (http://www.autoitscript.com/autoit3/docs/keywords.htm#ContinueLoop)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
$sVideoFile = IniRead (http://autoit-script.ru/autoit3_docs/functions/IniRead.htm)($sIni, $aSearch[$i], 'Video', 'Error')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $sVideoFile = 'Error' Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$sVideoFile = IniRead (http://autoit-script.ru/autoit3_docs/functions/IniRead.htm)($sIni, StringLower (http://autoit-script.ru/autoit3_docs/functions/StringLower.htm)($aSearch[$i]), 'Video', 'Error')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $sVideoFile = 'Error' Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('Can not search video file for word "' & $aSearch[$i] & '" in text' & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
ContinueLoop (http://www.autoitscript.com/autoit3/docs/keywords.htm#ContinueLoop)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('image file for word "' & $aSearch[$i] & '": ' & $sImageFile & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('video file for word "' & $aSearch[$i] & '": ' & $sVideoFile & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('---' & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)tst.ini:[Собака]
Image="D:\Image\Собака.jpeg"
Video="D:\Video\Собака.mpeg"
[кот]
Image="D:\Image\Кот.jpeg"
Video="D:\Video\Кот.mpeg"
[Черепаха]
Image="D:\Image\Черепаха.jpeg"
Video="D:\Video\Черепаха.mpeg"

Cem
27-02-2014, 15:37
madmasles, Спасибо! Ваш метод, конечно, очень хорош, однако, в таком случае, если на данный момент "Животных" - 1200 наименований, то

Local $sTxt, $aSearch[3] = ['Собака', 'Кот', 'Черепаха'], $sImageFile, $sVideoFile » будет выглядеть немного "страшно", а база может пополняться (загрузчик для базы уже написал).
Касательно метода, товарища Iska (которому отдельное СПАСИБО) - наверное, идеальное решение.
Надо разобраться, пойду дальше листать литературу.

madmasles
01-03-2014, 12:32
Cem,
Печально, но Вы не поняли, что $aSearch[3] используется только для примера поиска.
Local (http://www.autoitscript.com/autoit3/docs/keywords.htm#Local) $sTxt, $sSearch, $sImageFile, $sVideoFile

$sSearch = InputBox (http://autoit-script.ru/autoit3_docs/functions/InputBox.htm)('Название', 'Введите животное:', 'Здесь вводим', '', 250, 150, Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), 0)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) Not (http://www.autoitscript.com/autoit3/docs/keywords.htm#Not) $sSearch Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit) 1
$sTxt = FileRead (http://autoit-script.ru/autoit3_docs/functions/FileRead.htm)(@ScriptDir (http://autoit-script.ru/autoit3_docs/macros.htm#@scriptdir) & '\tst.txt')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) Not (http://www.autoitscript.com/autoit3/docs/keywords.htm#Not) StringInStr (http://autoit-script.ru/autoit3_docs/functions/StringInStr.htm)($sTxt, $sSearch, 1) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) Not (http://www.autoitscript.com/autoit3/docs/keywords.htm#Not) StringInStr (http://autoit-script.ru/autoit3_docs/functions/StringInStr.htm)($sTxt, StringLower (http://autoit-script.ru/autoit3_docs/functions/StringLower.htm)($sSearch), 1) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('No word "' & $sSearch & '" in text' & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit) 2
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
$sImageFile = StringRegExpReplace (http://autoit-script.ru/autoit3_docs/functions/StringRegExpReplace.htm)($sTxt, '(?ims).*^([a-z].*?\\' & $sSearch & '\.j.*?)$.*', '$1')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) @extended (http://autoit-script.ru/autoit3_docs/macros.htm#@extended) <> 1 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$sImageFile = StringRegExpReplace (http://autoit-script.ru/autoit3_docs/functions/StringRegExpReplace.htm)($sTxt, '(?ims).*^([a-z].*?\\' & StringLower (http://autoit-script.ru/autoit3_docs/functions/StringLower.htm)($sSearch) & '\.j.*?)$.*', '$1')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) @extended (http://autoit-script.ru/autoit3_docs/macros.htm#@extended) <> 1 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('Can not search image file for word "' & $sSearch & '" in text' & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
$sVideoFile = StringRegExpReplace (http://autoit-script.ru/autoit3_docs/functions/StringRegExpReplace.htm)($sTxt, '(?ims).*^([a-z].*?\\' & $sSearch & '\.m.*?)$.*', '$1')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) @extended (http://autoit-script.ru/autoit3_docs/macros.htm#@extended) <> 1 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$sVideoFile = StringRegExpReplace (http://autoit-script.ru/autoit3_docs/functions/StringRegExpReplace.htm)($sTxt, '(?ims).*^([a-z].*?\\' & StringLower (http://autoit-script.ru/autoit3_docs/functions/StringLower.htm)($sSearch) & '\.m.*?)$.*', '$1')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) @extended (http://autoit-script.ru/autoit3_docs/macros.htm#@extended) <> 1 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('Can not search video file for word "' & $sSearch & '" in text' & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('Image file for word "' & $sSearch & '": ' & $sImageFile & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('Video file for word "' & $sSearch & '": ' & $sVideoFile & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))и
Local (http://www.autoitscript.com/autoit3/docs/keywords.htm#Local) $sIni = @ScriptDir (http://autoit-script.ru/autoit3_docs/macros.htm#@scriptdir) & '\tst.ini', $sSearch, $sImageFile, $sVideoFile

$sSearch = InputBox (http://autoit-script.ru/autoit3_docs/functions/InputBox.htm)('Название', 'Введите животное:', 'Здесь вводим', '', 250, 150, Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), 0)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) Not (http://www.autoitscript.com/autoit3/docs/keywords.htm#Not) $sSearch Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit) 1
$sImageFile = IniRead (http://autoit-script.ru/autoit3_docs/functions/IniRead.htm)($sIni, $sSearch, 'Image', 'Error')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $sImageFile = 'Error' Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$sImageFile = IniRead (http://autoit-script.ru/autoit3_docs/functions/IniRead.htm)($sIni, StringLower (http://autoit-script.ru/autoit3_docs/functions/StringLower.htm)($sSearch), 'Image', 'Error')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $sImageFile = 'Error' Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('Can not search image file for word "' & $sSearch & '" in text' & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
$sVideoFile = IniRead (http://autoit-script.ru/autoit3_docs/functions/IniRead.htm)($sIni, $sSearch, 'Video', 'Error')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $sVideoFile = 'Error' Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$sVideoFile = IniRead (http://autoit-script.ru/autoit3_docs/functions/IniRead.htm)($sIni, StringLower (http://autoit-script.ru/autoit3_docs/functions/StringLower.htm)($sSearch), 'Video', 'Error')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $sVideoFile = 'Error' Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('Can not search video file for word "' & $sSearch & '" in text' & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $sImageFile <> 'Error' Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('Image file for word "' & $sSearch & '": ' & $sImageFile & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $sVideoFile <> 'Error' Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('Video file for word "' & $sSearch & '": ' & $sVideoFile & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))

Cem
04-03-2014, 05:02
madmasles, Спасибо! Очень подробно "разжевали", теперь понял.

madmasles
05-03-2014, 19:11
Cem,
Если у Вас всегда путь к файлам $sImageFile и $sVideoFile отличается только названием животного, то можно сделать совсем просто, без всяких файлов-баз:Local (http://www.autoitscript.com/autoit3/docs/keywords.htm#Local) $s_Animal, $s_ImageFile, $s_VideoFile, $a_Path[2][2] = [[@ScriptDir (http://autoit-script.ru/autoit3_docs/macros.htm#@scriptdir) & '\Files\Image\', '.jpeg'],[@ScriptDir (http://autoit-script.ru/autoit3_docs/macros.htm#@scriptdir) & '\Files\Video\', '.mpeg']]

;~ $a_Path[0][0] - полный путь с обратным слешем в конце к папке с файлами-картинками;
;~ $a_Path[1][1] - расширение файлов-картинок;
;~ $a_Path[1][0] - полный путь с обратным слешем в конце к папке с файлами-видео;
;~ $a_Path[1][1] - расширение файлов-видео.

;~ поменяйте эти пути и расширения на свои.

$s_Animal = InputBox (http://autoit-script.ru/autoit3_docs/functions/InputBox.htm)('Название', 'Введите животное:', 'Здесь вводим', '', 250, 150, Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), Default (http://www.autoitscript.com/autoit3/docs/keywords.htm#Default), 0)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) Not (http://www.autoitscript.com/autoit3/docs/keywords.htm#Not) $s_Animal Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit) 1
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) FileExists (http://autoit-script.ru/autoit3_docs/functions/FileExists.htm)($a_Path[0][0] & $s_Animal & $a_Path[0][1]) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$s_ImageFile = $a_Path[0][0] & $s_Animal & $a_Path[0][1]
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) FileExists (http://autoit-script.ru/autoit3_docs/functions/FileExists.htm)($a_Path[1][0] & $s_Animal & $a_Path[1][1]) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$s_VideoFile = $a_Path[1][0] & $s_Animal & $a_Path[1][1]
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $s_ImageFile Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('Image file for animal "' & $s_Animal & '": ' & $s_ImageFile & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
Else (http://www.autoitscript.com/autoit3/docs/keywords.htm#Else)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('Can not search image file for animal "' & $s_Animal & '"' & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $s_VideoFile Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('Video file for animal "' & $s_Animal & '": ' & $s_VideoFile & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
Else (http://www.autoitscript.com/autoit3/docs/keywords.htm#Else)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)('Can not search video file for animal "' & $s_Animal & '"' & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf))
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)




© OSzone.net 2001-2012