Что нового

Запись значений в текстовый файл txt - в разные строки

Grell

Новичок
Сообщения
127
Репутация
0
Добрый день.
Подскажите с решением.

У меня есть скрипт формы, на которой располагаются две кнопки в виде гиперссылок.
Я пытаюсь заставить эти кнопки - добавлять единицы в разные места текстового файла "1.txt".
То есть при щелчке на первой кнопке - добавляется 1 - на первую строку, на место 13-го символа.
А при щелчке на второй кнопке - добавляется 1, но уже на второй строке, на место 12-го символа.

Чем больше щелчков по соответствующим кнопкам - тем большее число в соответствующих строках.

Но что-то не получается. Выдает ошибку.
Подскажите - как скриптом - осуществить запись чисел - при щелчках на кнопки - в разные строки текстового файла 1.txt ?
 

Вложения

  • 1.rar
    1.1 КБ · Просмотры: 8

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Re: Запись значений в текстовый файл - в разные строки

Grell сказал(а):

Главная ошибка вы не знаете том что скрипт выполняется построчно. Как вы хотели объявить переменные после запуска цикла опроса GUI?

Это нужно поместить вначале скрипта, но дальше ситуация не лучше например зачем вы каждый раз открываете файл для записи и закрываете?

Код:
Global $iClicks = 0, $sFile = @ScriptDir  & '\1.txt'
Local $aArr, $sFile_Text = FileRead($sFile)
If $sFile_Text Then
    $aArr = StringRegExp($sFile_Text, '\d+', 1)
    If Not @error Then $iClicks = Number($aArr[0])
EndIf
 
Автор
G

Grell

Новичок
Сообщения
127
Репутация
0
Tempo , постоянно открывать и закрывать текстовый файл - нужно для добавления единиц.
Сейчас запись ведется - в одну строку, на месте первого символа.

Как сделать этот скрипт - способным к записи 1 - на первую строку, на место 13-го символа, а при щелчке на второй кнопке - также 1, но уже на второй строке, на место 12-го символа.
 

Вложения

  • 1.rar
    1.1 КБ · Просмотры: 1

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Grell сказал(а):
Tempo , постоянно открывать и закрывать текстовый файл - нужно для добавления единиц.

Не нужно. Вот вам пример

Код:
#include <GuiConstants.au3>

Local $i1, $i2, $hFile
Local $iStart1 = "1 = ", $iStart2 = "2 = ", $iNum1 = 0, $iNum2 = 0

GUICreate("", 100, 90)
$i1 = GUICtrlCreateButton($iStart1 & $iNum1, 10, 10, 80, 30)
$i2 = GUICtrlCreateButton($iStart2 & $iNum2, 10, 50, 80, 30)
GUISetState()
$hFile = FileOpen(@ScriptDir & "\Test.txt", 2)
FileWrite($hFile, $iStart1 & $iNum1 & @CRLF & $iStart2 & $iNum2)

While 1
    Switch GUIGetMsg()
        Case $i1
            $iNum1 += 1
            GUICtrlSetData($i1, $iStart1 & $iNum1)
            FileSetPos($hFile, 4, 0)
            FileWrite($hFile, $iNum1 & @CRLF & $iStart2 & $iNum2)
            FileFlush($hFile)
        Case $i2
            $iNum2 += 1
            GUICtrlSetData($i2, $iStart2 & $iNum2)
            FileSetPos($hFile, StringLen($iNum1) + 6, 0)
            FileWrite($hFile, $iStart2 & $iNum2)
            FileFlush($hFile)
        Case $GUI_EVENT_CLOSE
            ExitLoop
    EndSwitch
WEnd

GUIDelete()
FileClose($hFile)
 
Автор
G

Grell

Новичок
Сообщения
127
Репутация
0
Tempoэто немного не то.
Я спрашивал - другое.

Как сделать мой скрипт - способным к записи 1 - на первую строку, на место 13-го символа, а при щелчке на второй кнопке - также 1, но уже на второй строке, на место 12-го символа.
То есть - изменение конкретной цифры в определенной позиции текстового файла.

Потом у вас - еще почему-то на кнопках - цифры меняются.
На моих кнопках - две обычные статичные надписи "Кнопка один" и "Кнопка Два".
 
Верх