Страница 1 из 1
По File
Добавлено: 04 авг 2010, 14:28
galover
Кто-нибудь юзал File в frm-ке (присоединенной форме)? У меня компилятор ругается на
Код: Выделить всё
...
File _fLastNum; // Файл с нумерацией документов
.function GetLastFileNum : byte;
begin
result := 0;
_fLastNum.OpenFile(_resFolder + csFileNumName, stCreate);
var str : string;
_fLastNum.ReadLn(str);
result := Byte(str);
end.
Ошибка: Нет такой функции, поля или метода : _FLASTNUM.OPE
NFILE (стр.85, поз.22)
_fLastNum.OpenFile(_resFolder + csFileNumName, stCreate);
^
Что не так?
Re: По File
Добавлено: 04 авг 2010, 15:20
Den
Непосредственно через .file не пробал но работает так :
.linkform ...
.var
Fbasname1: string ;
f : longint ;
.endvar
.begin
FBasName1 :=GetPathParameter('files', 'TmpFilesDirectory', 0)+'mcs.bas';
f:=CreateFileHandle(FBasName1);
file_Openfile(FBasName1,stCReate,f);
file_WriteLn('qwerty');
File_Close(f);
end.
....
.endform
Re: По File
Добавлено: 04 авг 2010, 16:08
edward_K
не все виповское пашет в формах. file в том числе - для того и есть дубликаты.
Re: По File
Добавлено: 04 авг 2010, 16:25
galover
Den
Спасибо, все получилось
edward_K писал(а):не все виповское пашет в формах. file в том числе - для того и есть дубликаты.
Да, так и есть
Re: По File
Добавлено: 09 сен 2014, 17:09
zna
А как сделать обработку мемо-поля? Пытался так:
Код: Выделить всё
.begin
Var sinfo: string;
Var lFile: longint;
Getfirst allmemo where((1000000000001h == allmemo.nrec));
lFile:=CreateFileHandle(’allmemo.mem’);
file_Openfile(’allmemo.mem’,stOpenRead,lFile);
file_seek(0, lFile);
file_ReadLn(sinfo,lFile);
file_Close(lFile);
message(‘sinfo = ‘+sinfo+’lFile = ‘+lFile);
End.
- не прокатило- в переменную sinfo ничего не прочиталось, хотя хендл lFile ненулевой..
?
Re: По File
Добавлено: 09 сен 2014, 18:41
edward_K
не путайте handler c открытием файла. В Create можно писать все что угодно - лишь бы было пустое или уникальное.
А вот open. Полезно во первых под имя файла держать переменную(ну чтобы 10 раз не переписывать), перед open проверить на его наличие через fileexist, а сам OpenFile проверить на true. Вы уверены что в рабочей папке галки есть этот файл и его никто не держит открытым? (там есть опция открыть даже если открыт - типа stDenyNone).
Re: По File
Добавлено: 09 сен 2014, 19:28
Den
Метод ExportMemoToFile
Назначение
Функция записывает содержимое мемо-поля field в файл с именем file. Если параметр append равен true, то информация добавляется в конец файла.
Описание
function ExportMemoToFile(Field: memo; File: string;
Append: Boolean): boolean;
Параметры
field - мемо-поле.
file - имя файла, в который будет записано содержимое мемо-поля.
append - если append = true, то мемо-поле дописывается в конец файла.
Возвращаемое значение
Функция возвращает true при успешном выполнении операции.
Re: По File
Добавлено: 09 сен 2014, 19:35
edward_K
А. Так там еще и не файл. Если построчно нужно, то открывать нужно через File_OpenMemo. Ну еще есть memoreadln и иже с ней - поиск в vipprogr.chm поможет.
Re: По File
Добавлено: 10 сен 2014, 09:37
zna
Получилось всё через ExportMemoToFile, спасибо!
Код: Выделить всё
.linkform ’AktDoUsl_U_140904’ prototype is akts
.NameInList ’Акт о выполненных работах - 140904’
...
.begin
Var FilePath, sinfo: string;
Var lFile: longint;
FilePath :=GetPathParameter('files', 'TmpFilesDirectory', 0)+'memo.tmp';
Getfirst allmemo where((0001000000000001h == allmemo.nrec));
If ExportMemoToFile(allmemo.mem, FilePath, false) = true then
{
lFile:=CreateFileHandle(FilePath);
if file_Openfile(FilePath,stOpenRead,lFile) = true then
{
file_seek(0, lFile);
file_ReadLn(sinfo,lFile);
file_Close(lFile);
message(‘sinfo = ‘+sinfo);
} message (‘Ошибка открытия файла ’+FilePath, error);
} else message (‘Ошибка экспорта мемо- поля в файл!’, error);
end.
Вот за что я люблю Галактику, а паче - её документацию- очевидные, на первый взгляд, решения не работают, а решения типа "поездка из Питера в Москву через Владивосток" дают результат. Имхо, конечно..
Re: По File
Добавлено: 10 сен 2014, 10:23
edward_K
Угу. Тока в данном случае в vipprogr.chm все написано и даже примеры есть. Просто не нужно юзать функции по открытию файлов для открытия мемо - там первая переменная другого типа и пихать в файловую в качестве имени файла названия поля имхо не такая очевидная вещь - как вы до такого додумались? А memoreadln чего не стали использовать? Эт еще проще.
Re: По File
Добавлено: 10 сен 2014, 11:14
zna
edward_K писал(а):.. Просто не нужно юзать функции по открытию файлов для открытия мемо - там первая переменная другого типа и пихать в файловую в качестве имени файла названия поля имхо не такая очевидная вещь - как вы до такого додумались..
Это в результате попыток подбора: разные варианты пробовал, прежде чем вопрос задать, а сюда привёл один из вариантов. Перебор вариантов включается, когда видишь, что собственное понимание правильного написания параметра ускользает, а опыта не хватает. Иногда такой метод срабатывает.
edward_K писал(а):.. А memoreadln чего не стали использовать?..
Так с ExportMemoToFile получилось же..