Author Topic: Работа с файлами  (Read 3053 times)

0 Members and 1 Guest are viewing this topic.

CarpeDiem

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Работа с файлами
« on: January 26, 2017, 10:42:54 PM »
Задача: создать файл с произвольным(необязательно) именем в который по средствам INPUTBOX будет заносится информация в виде
$peremen1="введенное значение в боксе"
$peremen2="введенное значение в боксе"
....

Основная проблема заключается в том как записать в файл $peremen

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Работа с файлами
« Reply #1 on: January 27, 2017, 08:19:37 AM »
Если ты создаешь файл настроек то нужно использовать INI

Code: (clickermann) [Select]
$str = INPUTBOX("message", "10", 10)
IF($str = "")
   HALT
END_IF

INIWRITE("config.ini", "peremen1", $str, "SECTION1") // запись

$str = INIREAD("config.ini", "peremen1", "SECTION1") // чтение
LOGWRITE ($str)

HALT

Также нужно знать что возвращаемое значение из INIREAD является строкой, и если там будет число с которым в дальнейшем нужно производить вычисления то нужно принудительно перевести строку в число функцией INT
Code: (clickermann) [Select]
$str = INT(INIREAD("config.ini", "peremen1", "SECTION1"))

CarpeDiem

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: Работа с файлами
« Reply #2 on: January 27, 2017, 01:38:44 PM »
Если ты создаешь файл настроек то нужно использовать INI

Code: (clickermann) [Select]
$str = INPUTBOX("message", "10", 10)
IF($str = "")
   HALT
END_IF

INIWRITE("config.ini", "peremen1", $str, "SECTION1") // запись

$str = INIREAD("config.ini", "peremen1", "SECTION1") // чтение
LOGWRITE ($str)

HALT

Также нужно знать что возвращаемое значение из INIREAD является строкой, и если там будет число с которым в дальнейшем нужно производить вычисления то нужно принудительно перевести строку в число функцией INT
Code: (clickermann) [Select]
$str = INT(INIREAD("config.ini", "peremen1", "SECTION1"))

У меня есть основная программа в которой все переменные берутся из файла "settings" в том виде, в котором описал в первом посте.
Задача просто в таком же виде другой программой занести туда данные

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Работа с файлами
« Reply #3 on: January 27, 2017, 02:22:46 PM »
У меня есть основная программа в которой все переменные берутся из файла "settings" в том виде, в котором описал в первом посте.
Задача просто в таком же виде другой программой занести туда данные

Так что ли?
Code: (clickermann) [Select]
// только с версии 4.12
FOR($ns=1, $ns < TFCOUNT("settings.txt") + 1)
    $str = TFREAD("settings.txt", $ns)
    STRSEPARATE($str, "=", $data)
    $input = INPUTBOX(STRCONCAT($data[0]), $data[1], 10)
    TFWRITE("settings.txt", $data[0],"=", $input))
    UNDEFINE($str)
    UNDEFINE($data)
END_CYC
HALT

В файле должны быть переменные
Code: [Select]
$peremen1=значение1
$peremen2=значение2
или
Code: [Select]
$peremen1=
$peremen2=

Или имя переменной тоже задавать будешь? А где, в скрипте списком или запрашивать ввод имени? Непонятно что будут спрашивать ввести?
« Last Edit: January 27, 2017, 02:27:51 PM by Vint »


CarpeDiem

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: Работа с файлами
« Reply #4 on: January 27, 2017, 02:42:21 PM »
У меня есть основная программа в которой все переменные берутся из файла "settings" в том виде, в котором описал в первом посте.
Задача просто в таком же виде другой программой занести туда данные

Так что ли?
Code: (clickermann) [Select]
// только с версии 4.12
FOR($ns=1, $ns < TFCOUNT("settings.txt") + 1)
    $str = TFREAD("settings.txt", $ns)
    STRSEPARATE($str, "=", $data)
    $input = INPUTBOX(STRCONCAT($data[0]), $data[1], 10)
    TFWRITE("settings.txt", $data[0],"=", $input))
    UNDEFINE($str)
    UNDEFINE($data)
END_CYC
HALT

В файле должны быть переменные
Code: [Select]
$peremen1=значение1
$peremen2=значение2
или
Code: [Select]
$peremen1=
$peremen2=

Или имя переменной тоже задавать будешь? А где, в скрипте списком или запрашивать ввод имени? Непонятно что будут спрашивать ввести?

Первый ваш код помог.
Сделал вот так
Code: [Select]
$sizeX = INPUTBOX("Размер окна по ширине", "", 60)
INIWRITE("config.ini", "$sizeX", $sizeX)
$sizeY = INPUTBOX("Размер окна по высоте", "", 60)
INIWRITE("config.ini", "$sizeY", $sizeY)

И еще один вопрос, чтобы не создавать новую тему: можно ли как нибудь реализовать скриншот области с центром в виде курсора.
Т.е чтобы делал скриншот если мышка находится X,Y: 600,500 Области (600-10, 500-10, 600+10, 500+10) В итоге должна получится картинка размером 20х20 с центром где находился курсор.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Работа с файлами
« Reply #5 on: January 27, 2017, 02:46:20 PM »
Code: (clickermann) [Select]
GETSCREEN
SCREENSHOTEX($_xmouse-10,$_ymouse-10, $_xmouse+10,$_ymouse+10, "Image_", 0)
HALT

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Работа с файлами
« Reply #6 on: January 27, 2017, 02:54:23 PM »
И еще один вопрос, чтобы не создавать новую тему: можно ли как нибудь реализовать скриншот области с центром в виде курсора.
Только смотри, в браузере, флеше и играх всяких при наведении курсора изображение меняется.


CarpeDiem

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: Работа с файлами
« Reply #7 on: January 27, 2017, 03:01:23 PM »
Всем спасибо за советы, все работает