Что нового

[Данные, строки] Взять данные из блокнота

potembo

Новичок
Сообщения
7
Репутация
0
Версия AutoIt: 3.

Новичёк, так что нужно помощь. Есть файл на рабочем столе 111.txt там находятся данные в виде данное1:данное2[переход строки]данное3:данное4[переход строки] и так далее (могу вместо двоеточий разделить их запятыми или по другому). Итак мне надо сделать цикл, который:
1)открывет блокнот, 2)берёт верхнюю строчку и присваивет значения $переменная1=данное1, $переменная2=данное2 и 3)удаляет эти данные из списка, 4) я делаю свои действия с перемеными и повторяю с пункта 2 (пункт 4 не изменяется, изменяется только набор данных)
 

axlwor

Скриптер
Сообщения
657
Репутация
147
то есть
файл
Код:
строка1:строка2
строка3:строка4
строка5:строка6

нужно получить файл?
Код:
$переменнаястрока1=строка1
$переменнаястрока2=строка2
$переменнаястрока3=строка3
$переменнаястрока4=строка4
$переменнаястрока5=строка5
$переменнаястрока6=строка6
 
Автор
P

potembo

Новичок
Сообщения
7
Репутация
0
файл исходный верно,
но мне надо получить
Код:
$переменная1=строка1
$переменная2=строка2
затем допустим вывести их на 2 секунды на экран и потом
Код:
$переменная1=строка3
$переменная2=строка4
вывести их на 2 секунды на экран
а когда строчки закончаться вывести "строчки закончились".
То есть я набросал простую програмку, которая пользуется 2-мя переменными и делает своё дело =) а как это сделать в автоматическом режиме, путём взятия данных из блокнота, не ясно...
 

axlwor

Скриптер
Сообщения
657
Репутация
147
а зачем блокнот?
берем файл. получаем данные. обрабатываем. файл кончился. хэппи энд :whistle:
 
Автор
P

potembo

Новичок
Сообщения
7
Репутация
0
В блокноте они хранятся. В теории вы хорошо написали, простенький пример бы, который это делал.
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Код:
#include <file.au3>
#include <array.au3>

; get file name
$saFile = FileOpenDialog( "Select file with computer names", @WorkingDir & "\", "All (*.*)", 1 )
If @error Then
    MsgBox( 0, "Error","No file selected" )
    Exit
EndIf

Dim $aRecords
If Not _FileReadToArray($saFile,$aRecords) Then
   MsgBox(4096,"Error", " Error reading to Array     error:" & @error)
   Exit
EndIf
_ArrayDisplay($aRecords)



получили массив. теперь можно по нему ползать
Код:
for $i = 1 to $aRecords[0]
$aA = StringSplit($aRecords[$i], ':', 2)
next

в каждом шаге получаем массив
Код:
$aA[0] = строка1
$aA[1] = строка2

Теперь вступает в действие ваша программа, которая как то работает
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
potembo [?]
простенький пример

Код:
$hFile = FileOpen("111.txt", 0)
If $hFile = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
EndIf

While 1
    $sLine = FileReadLine($hFile)
    If @error = -1 Then ExitLoop
	$aData = StringSplit($sLine, ':', 2)
	$sData1 = $aData[0]
	$sData2 = $aData[1]
    MsgBox(0, "Data", $sData1 & @CRLF & $sData2)
Wend

FileClose($hFile)
 
Автор
P

potembo

Новичок
Сообщения
7
Репутация
0
Особенно ценен был простенький пример, только если кто будет его повторять, не забудьте разместить файл 111.txt в той же папка, что и сама программа. А вместо строчки
Код:
MsgBox(0, "Data", $sData1 & @CRLF & $sData2)
использовать что-нибудь другое. Всем спасибо, проблема решена.

P.S. Может быть зря я в своё время выйграл в настольный тенис (у адского прогера) все лабы по C++ и забил на программирование :D
 
Верх