Для проверки существования файла существует FileExists( filename )
, который возвращает логическое значение. Этой функции для проверки требуется только имя файла.
Напротив, FileWrite()
должен работать с открытым файлом . Ему присваивается «номер файла», который генерируется при вызове FileOpen()
(и этот номер файла также должен присваиваться FileClose()
в конце процесса).
Почему бы не посмотреть документацию по PowerBuilder? Для этого есть пример: в PB IDE нажмите F1 , посмотрите раздел FileWrite PowerScript function
, затем нажмите кнопку Example . (Удивительно, но в примере не упоминается FileClose()
, но вам действительно нужно его назвать; o)
Не забудьте проверить наличие недопустимых номеров файлов (например, если имя файла не существует или файл уже используется).
РЕДАКТИРОВАТЬ: , как ОП пояснил в комментариях, что он хотел бы иметь возможность вызвать SetProfileString()
для несуществующего INI-файла (который не может создать новый INI-файл), вот пример создания нового ini-файла:
int li_file
string ls_ini = "config.ini"
li_file = fileopen(ls_ini, LineMode!, write!)
FileClose(li_file)
SetProfileString(ls_ini, "Database", "Server", "host")
SetProfileString(ls_ini, "Database", "UserId", "foo")
SetProfileString(ls_ini, "Database", "Password", "bar")
SetProfileString(ls_ini, "Database", "DB", "baz")