Что нового

Выполнить условие при изменении строки в текстовом файле.

A

at

Гость
Версия AutoIt: 3.3.6.1

Здравствуйте.
Пожалуйста, помогите в решении такой задачи: если текстовый файл содержит строку
«79153367938;04.03.2009 14:35:00;А» то выполняется одно условие, а если содержит строку
«79883367938;04.05.2011 17:15:20;В» то выполняется другое условие.

P.S. Важно здесь только изменение последнего символа в строке (выделено красным).
 

edward_freedom

Осваивающий
Сообщения
200
Репутация
44
Код:
$file = FileOpen("test.txt", 0)
$line = FileReadLine($file)
$var1 = "79153367938;04.03.2009 14:35:00;А"
$var2 = "79883367938;04.05.2011 17:15:20;В"
if $line = $var1 Then
Msgbox(0, "Test", "Вариан первый")
Elseif $line = $var2 then
Msgbox(0, "Test", "Вариан второй")
endif
FileClose($file)
 
Автор
A

at

Гость
Спасибо за решение. Я сегодня сам уже много всего перепробовал. К сожалению это не подходит.
Все значения в строке 79153367938;04.03.2009 14:35:00;А постоянно изменяются. Нас интересует смена только последнего символа («А» на «В»).
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626

edward_freedom

Осваивающий
Сообщения
200
Репутация
44
Код:
$file = FileOpen("test.txt", 0)
$line = FileReadLine($file)
$sPattern = '[^;.:0-9]'
$array = StringRegExp($line,$sPattern, 3)
if $array[1] = "А" Then
	Msgbox(0, "Test", "Вариан первый")
elseif $array[1] = "В" Then
	Msgbox(0, "Test", "Вариан второй")
endif
 FileClose($file)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
at [?]
интересует смена только последнего символа («А» на «В»)
Код:
$sString = '79153367938;04.03.2009 14:35:00;A'
Switch StringRight($sString, 1)
	Case 'А', 'A';рус. и англ.
		MsgBox(64, 'Info', 'A')
	Case 'В', 'B'
		MsgBox(64, 'Info', 'B')
	Case Else
		MsgBox(16, 'Error', 'Ни А, ни В')
EndSwitch
 
Автор
A

at

Гость
Спасибо большое всем за помощь. Все работает.

Вариант I
Код:
$file = FileOpen("test.txt", 0)
$line = FileReadLine($file)

$sPattern = '[^;.:0-9]'
$array = StringRegExp($line,$sPattern, 3)
if $array[1] = "A" Then
    Msgbox(0, "Info", "A")
elseif $array[1] = "B" Then
    Msgbox(0, "Info", "B")
endif
 FileClose($file)


Вариант II
Код:
$file = FileOpen("test.txt", 0)
$line = FileReadLine($file)

Switch StringRight($line, 1)
    Case 'A'
        MsgBox(0, 'Info', 'A')
    Case 'B'
        MsgBox(0, 'Info', 'B')
EndSwitch
 
Верх