WRITELINETOFILE — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) м (→Текст программы) |
Hisava (обсуждение | вклад) м |
||
| Строка 13: | Строка 13: | ||
no_msg - не надо выводить сообщения ( по умолчанию, no_msg = true, т.е. сообщения не нужны ) | no_msg - не надо выводить сообщения ( по умолчанию, no_msg = true, т.е. сообщения не нужны ) | ||
| + | = Пример = | ||
| + | |||
| + | local aa, sql, i, ii, file_name, fld, r169_kod, r166_lvl | ||
| + | |||
| + | // выбор документа | ||
| + | r169_kod := ChoiceRefr( 'R169', 'KOD', { 'KOD', 'PNAME' }, ~Title := 'Выберите один документ' ) | ||
| + | if Empty( r169_kod ) | ||
| + | return | ||
| + | endif | ||
| + | |||
| + | // выбор уровня | ||
| + | r166_lvl := ChoiceRefr( 'R166', 'LVLNUM', { 'LVLNUM', 'PNAME' }, [ KINDDOC = '] + r169_kod + [' ], ~Title := 'Выберите уровень' ) | ||
| + | if Empty( r166_lvl ) | ||
| + | return | ||
| + | endif | ||
| + | |||
| + | file_name := r169_kod + r166_lvl + '.txt' | ||
| + | |||
| + | WriteLineToFile( '{| class = "wikitable"', file_name, TempPath ) | ||
| + | WriteLineToFile( '|-', file_name, TempPath ) | ||
| + | WriteLineToFile( '! Идентификатор реквизита || Наименование ', file_name, TempPath ) | ||
| + | |||
| + | fld := { 'IDENT', 'PNAME' } | ||
| + | |||
| + | sql := [ Select IDENT, PNAME From R165 Where KINDDOC = '] + r169_kod + [' and LVLNUM = '] + r166_lvl + [' Order by IDENT ] | ||
| + | aa := SqlToArr( sql, fld, ReflisPath ) | ||
| + | |||
| + | if !IsEmpty( aa ) | ||
| + | for i := 1 to len( aa ) | ||
| + | WriteLineToFile( '|-', file_name, TempPath ) | ||
| + | WriteLineToFile( '|' + aa[i,1] + ' || ' + StrTran( StrTran( aa[i,2], ';', ' ' ), '|', '' ), file_name, TempPath ) | ||
| + | next | ||
| + | endif | ||
| + | |||
| + | aa := '|}' | ||
| + | WriteLineToFile( aa, file_name, TempPath, false ) | ||
= Текст программы = | = Текст программы = | ||
Версия 22:47, 13 ноября 2016
WrieLineToFile - это программа из справочника R266
WRITELINETOFILE( str_line, name, path [, no_msg := true] )
Запись строки в файл
str_line - строка
name - имя файла
path - путь к файлу
no_msg - не надо выводить сообщения ( по умолчанию, no_msg = true, т.е. сообщения не нужны )
Пример
local aa, sql, i, ii, file_name, fld, r169_kod, r166_lvl
// выбор документа
r169_kod := ChoiceRefr( 'R169', 'KOD', { 'KOD', 'PNAME' }, ~Title := 'Выберите один документ' )
if Empty( r169_kod )
return
endif
// выбор уровня
r166_lvl := ChoiceRefr( 'R166', 'LVLNUM', { 'LVLNUM', 'PNAME' }, [ KINDDOC = '] + r169_kod + [' ], ~Title := 'Выберите уровень' )
if Empty( r166_lvl )
return
endif
file_name := r169_kod + r166_lvl + '.txt'
WriteLineToFile( '{| class = "wikitable"', file_name, TempPath )
WriteLineToFile( '|-', file_name, TempPath )
WriteLineToFile( '! Идентификатор реквизита || Наименование ', file_name, TempPath )
fld := { 'IDENT', 'PNAME' }
sql := [ Select IDENT, PNAME From R165 Where KINDDOC = '] + r169_kod + [' and LVLNUM = '] + r166_lvl + [' Order by IDENT ]
aa := SqlToArr( sql, fld, ReflisPath )
if !IsEmpty( aa )
for i := 1 to len( aa )
WriteLineToFile( '|-', file_name, TempPath )
WriteLineToFile( '|' + aa[i,1] + ' || ' + StrTran( StrTran( aa[i,2], ';', ' ' ), '|', ), file_name, TempPath )
next
endif
aa := '|}'
WriteLineToFile( aa, file_name, TempPath, false )
Текст программы
parameters str_line, name, path, no_msg := true local aa, _file if Empty( path ) path := 'c:\script\' path := TempPath endif path := Nice_path( path ) if Empty( name ) name := 'test.ps1' endif if !File( ExpandUncFileName( path + name ) ) WriteTxtFile( {}, name, path, true ) endif aa := {} try _file := AssignFile( path + name ) if Empty( _file ) return endif TextReset( _file ) while !TextEof( _file ) Aadd( aa, ReadLn( _file ) ) end finally if !Empty( _file ) CloseFile( _file ) endif end Aadd( aa, str_line ) WriteTxtFile( aa, name, path, no_msg )