WRITELINETOFILE — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) м (→Текст программы) |
Hisava (обсуждение | вклад) м (→Текст программы) |
||
(не показано 16 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | + | [[WRITELINETOFILE]] - это программа из справочника [[R266]] | |
− | + | Запись строки в файл | |
− | WRITELINETOFILE( str_line, name, path [, no_msg := true] ) | + | [[WRITELINETOFILE]]( str_line, name, path [, no_msg := true] ) |
− | + | ||
− | + | ||
str_line - строка | str_line - строка | ||
Строка 13: | Строка 11: | ||
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 ) | ||
+ | |||
+ | = Текст = | ||
parameters str_line, name, path, no_msg := true | parameters str_line, name, path, no_msg := true | ||
Строка 19: | Строка 54: | ||
local aa, _file | local aa, _file | ||
− | if Empty( path ) | + | if [[Empty]]( path ) |
path := 'c:\script\' | path := 'c:\script\' | ||
path := TempPath | path := TempPath | ||
endif | endif | ||
− | path := Nice_path( path ) | + | path := [[Nice_path]]( path ) |
− | if Empty( name ) | + | if [[Empty]]( name ) |
name := 'test.ps1' | name := 'test.ps1' | ||
endif | endif | ||
− | if !File( ExpandUncFileName( path + name ) ) | + | if !File( [[ExpandUncFileName]]( path + name ) ) |
− | WriteTxtFile( {}, name, path, true ) | + | [[WriteTxtFile]]( {}, name, path, true ) |
endif | endif | ||
Строка 37: | Строка 72: | ||
try | try | ||
− | _file := AssignFile( path + name ) | + | _file := [[AssignFile]]( path + name ) |
− | if Empty( _file ) | + | if [[Empty]]( _file ) |
return | return | ||
endif | endif | ||
− | TextReset( _file ) | + | [[TextReset]]( _file ) |
− | while !TextEof( _file ) | + | while ![[TextEof]]( _file ) |
− | Aadd( aa, ReadLn( _file ) ) | + | [[Aadd]]( aa, ReadLn( _file ) ) |
end | end | ||
finally | finally | ||
− | if !Empty( _file ) | + | if ![[Empty]]( _file ) |
− | CloseFile( _file ) | + | [[CloseFile]]( _file ) |
endif | endif | ||
end | end | ||
− | Aadd( aa, str_line ) | + | [[Aadd]]( aa, str_line ) |
− | WriteTxtFile( aa, name, path, no_msg ) | + | [[WriteTxtFile]]( aa, name, path, no_msg ) |
+ | |||
+ | = Смотрите также = | ||
+ | [[Полезные функции]] | ||
+ | |||
+ | [[Функции Delphi]] |
Текущая версия на 07:50, 4 сентября 2018
WRITELINETOFILE - это программа из справочника 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 )