powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Чтение из текстового файла
24 сообщений из 24, страница 1 из 1
Чтение из текстового файла
    #39021706
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здр-те форумчане!

Я использую Excel для вывода отчетов из FoxPro. Информации в отчетах меняются каждый месяц и мне приходиться изменить все эти настройки в коде программы и заменить на сервере exe файл на следующий день. Можно ли в текстовом файле все изменить, а в программе читать содержимое текстового файла? К примеру, текстовый файл 1.txt, файл содержит тексты.
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39021711
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Памятуя Ваш прошлый пост:
1. У Вас меняется структура файла Excel?
2. У Вас меняется текст в ячейках Excel?
3. Если настройки содержаться в файле, то чем замена файла легче exe?
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39021730
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
T1gRa_NTПамятуя Ваш прошлый пост:
1. У Вас меняется структура файла Excel?
2. У Вас меняется текст в ячейках Excel?
3. Если настройки содержаться в файле, то чем замена файла легче exe?

Форма отчета в Excel не меняется, только данные. Я хотел написанные мною в программе коды сохранить в текстовом файле и читать его в Foxpro.
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39021738
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже лучше.
Коды чего?
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39021744
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
T1gRa_NTУже лучше.
Коды чего?

Н-р такие коды:

xl=CREATEOBJECT('Excel.Application')
xl.Visible= .t.
xl.WorkBooks.open(ALLTRIM(sysfile.s_pathfwp)+'m.xlt')
GO TOP
xl.WorkBooks(1).Sheets(1).Select
xl.WorkBooks(1).Sheets(1).Range('C18').Select
xl.Selection.Value=m_date
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39021757
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ularsoftT1gRa_NTУже лучше.
Коды чего?

Н-р такие коды:

xl=CREATEOBJECT('Excel.Application')
xl.Visible= .t.
xl.WorkBooks.open(ALLTRIM(sysfile.s_pathfwp)+'m.xlt')
GO TOP
xl.WorkBooks(1).Sheets(1).Select
xl.WorkBooks(1).Sheets(1).Range('C18').Select
xl.Selection.Value=m_date

и открыть в фоксе FOPEN(ALLTRIM(sysfile.s_pathfwp)+'1.txt')
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39021779
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xl.Visible= .t. - очень рекомендуется указывать в конце.
Увеличивается скорость выгрузки в Excel.
Пользователь не может вмешаться в процесс формирования.
И зачем их менять?
я реализую следующим способом:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
fil_excel = 'Путь\Shab.xls' && выбор файла шаблона из текущей
filnam_r = "Shab.xls" && Имя файла эксель
nam_fil = 'Путь сохранения файла'+'имя файла'+'.xls' 
fil_new = (nam_fil)
ole2 = GETOBJECT(fil_excel)
    ole2.application.windows(filnam_r).activate
    ole1 = ole2.application
    WITH ole1
       .activeworkbook.saveas(fil_new)
       .sheets(2).select	&& выбор второго листа
       SELECT Файл из которого добавляем данные &&Выбираем массив лечившихся без прикрепления
       nomst = 4	&& определение строки с которой пишем
       SCAN 
              ole1.parent.cells(nomst, 4).value = поле
	      ole1.parent.cells(nomst, 5).value = ALLTRIM(поле)
              nomst = nomst+1
      ENDSCAN

**** Разлиновка ячеейк****
 			.range(.cells(4, 1), .cells(nomst-1, 22)).select 
    	    WITH .selection
           		.borders.linestyle = 1
	           	.borders.weight = 2
          	ENDWITH
    .range("A1").select	&& Перемещение курсора в ячейку
ENDWITH
WAIT CLEAR
ole1.visible = .T.	&& Отображение файла на экране
RELEASE ole1	&& Закрытие процесса Excel



Следующий вопрос: данные меняются, у них меняются типы или местоположение в Excel?
Или у Вас меняется место взятия шаблона файла?

ularsoftФорма отчета в Excel не меняется, только данные.
Так данные и должны меняться каждый месяц, разве не?
Но сама форма отчета крайне редко, если она меняется каждый месяц, это повод задуматься о её необходимости в таком в виде и продумать может избыточную но полную или разбить на несколько решающих каждую свою функцию.
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39021789
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoftи открыть в фоксе FOPEN(ALLTRIM(sysfile.s_pathfwp)+'1.txt')

Если сильно хочется я б хранил данные в таблице MySQL и брал оттуда.
Меньше локальных файлов, меньше геморроя.
Но все-таки полностью и понятно сформулируйте стоящию перед Вами задачу, ато опять гадание на кофейной гуще.


Оффтоп:
Если живете в ЕКБ, то могу помочь очно . Давно не пил пиво.
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39021856
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если хоте с файлом, то пожалуйте.
Гуглите символ перевода строки, и берите настройки из файла.

ИМХО: "Путь не очень." или вообще не понял задачи.
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39022410
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
T1gRa_NTНу если хоте с файлом, то пожалуйте.
Гуглите символ перевода строки, и берите настройки из файла.

ИМХО: "Путь не очень." или вообще не понял задачи.

Короче, я хочу сохранить в текстовом файле (н-р, 1.txt) следующие коды из программы:
m_date=Thisform.cl_date1
e_date=Thisform.cl_date2
i=5
ex=CREATEOBJECT('Excel.Application')
ex.WorkBooks.open(ALLTRIM(sysfile.s_pathfwp)+'kor10102.xlt')
ex.WorkBooks(1).Sheets(1).Select
WITH ex.WorkBooks(1).Sheets(1)
DO WHILE m_date<=e_date
ex.WorkBooks(1).Sheets(1).Range('A'+ALLTRIM(STR(i))).Value=m_date
ok=OD070(m_date,'TEMP')
IF !ok
MESSAGEBOX('Run-time Error ',016)
RETURN
ENDIF
SELECT TEMP
CALCULATE sum(T1_n) TO sm FOR INLIST(t1_1,'123456')
IF sm < 0
sm=ABS(sm)
ELSE
sm=-sm
ENDIF
.Range('B'+ALLTRIM(STR(i))).Select
ex.Selection.Value=sm
m_date=m_date+1
i=i+1
ENDDO
ENDWITH
ex.Visible= .t.
ThisForm.Release

т.к. будет меняться
CALCULATE sum(T1_n) TO sm FOR INLIST(t1_1,'123')
где 123.
Может добавиться еще 456 или 789.

Вот поэтому хочу в текстовом файле добавлять или удалять эти 123, 456, 789, чтобы не менять в программе.
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39022426
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoftт.к. будет меняться
CALCULATE sum(T1_n) TO sm FOR INLIST(t1_1,'123')
где 123.
Может добавиться еще 456 или 789.

Вот поэтому хочу в текстовом файле добавлять или удалять эти 123, 456, 789, чтобы не менять в программе.
Месье знает толк в извращениях

Может по-человечески лучше сделать? Для этого параметры придумали. Передавай в параметрах свое 123.
Если значений переменное количество: делай курсор и передавай в параметрах его имя.

PS Не надо в кучу мешать код и данные, никогда ничего хорошего из этого не получалось.
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39022437
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а не легче эти "123, 456, 789"
передавать как значения?
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39022441
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima Tularsoftт.к. будет меняться
CALCULATE sum(T1_n) TO sm FOR INLIST(t1_1,'123')
где 123.
Может добавиться еще 456 или 789.

Вот поэтому хочу в текстовом файле добавлять или удалять эти 123, 456, 789, чтобы не менять в программе.
Месье знает толк в извращениях

Может по-человечески лучше сделать? Для этого параметры придумали. Передавай в параметрах свое 123.
Если значений переменное количество: делай курсор и передавай в параметрах его имя.

PS Не надо в кучу мешать код и данные, никогда ничего хорошего из этого не получалось.

Нельзя что ли просто сохранить выше коды в 1.txt и вызвать его?
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39022455
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, опередили.
ularsoftВот поэтому хочу в текстовом файле добавлять или удалять эти 123, 456, 789, чтобы не менять в программе.

Код вывода в эксель не трогай! Если меняются только они, передавай их как переменную!
Создай для них поле или таблицу в SQL и бери оттуда в курсор и усё, будет тебе счастье!
А то что хочешь сделать ты - я поддержу Dima T, - извращение!
И обновлять легче, никакого копирование файлов.
Если ты хочешь хранить в файле код вывода в excel и постоянного его обновлять, то сделай его внешним вызовом.
Но сразу продумай обновление в автоматическом режиме!
Самое простое, скомпилируй, переведи в hex загрузи в базу и проставь дату!
Программа постучится, посмотрит, что дата обновилась, скачет и соберет с заменой старого тебе новый модуль.
Никаких ручных копирований и т.д.
У всех пользователь актуальная версия и счастье.
То что хочешь сделать ты в корне не правильно!
P.S. Тэг: "Выделение исходников" придуман не зря. Форматирование программного кода тоже полезная вещь!
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39022461
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoftНельзя что ли просто сохранить выше коды в 1.txt и вызвать его?
Можно, но в корне неправильно!
с помощью:
T1gRa_NTНу если хоте с файлом, то пожалуйте.
Гуглите символ перевода строки, и берите настройки из файла.

т.е. грубо говоря нужно со строк из файла собрать prg и запустить её исполнение.
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39022462
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoftНельзя что ли просто сохранить выше коды в 1.txt и вызвать его?
Тогда уж 1.prg
Если не путаю, из готового exe не запустится, т.к. сначала prg компилируется в fxp, а компиляция без установленного фокса невозможна. Устанавливать фокс всем юзерам подряд - это нелегальное распространение ПО, уголовно-наказуемо.
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39022504
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TularsoftНельзя что ли просто сохранить выше коды в 1.txt и вызвать его?
Тогда уж 1.prg
Если не путаю, из готового exe не запустится, т.к. сначала prg компилируется в fxp, а компиляция без установленного фокса невозможна. Устанавливать фокс всем юзерам подряд - это нелегальное распространение ПО, уголовно-наказуемо.

В дельфи есть такая возможность чтения из текстового файла.
Н-р, событие при нажатии кнопки:
procedure TForm1.Button1Click(Sender: TObject);
begin
with Table1 do
begin
Close;
SQL.Clear;
SQL.LoadFromFile('1.txt');
Open;
end;
end;

Текстовый файл 1.txt содержит следующее:
SELECT * FROM <ТАБЛИЦА SQL> WHERE <УСЛОВИЕ> GROUP BY <...> и т.д.
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39022531
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoft,
Форматирование!
Если так охота, как правильно сказал Dima T,

Dima TТогда уж 1.prg
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39022535
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В фоксе тоже можно прочитать файл
Код: sql
1.
lcText = FileToStr('1.txt')


затем меняй lcText и пиши обратно
Код: sql
1.
StrToFile(lcText, '1.txt')


ularsoftТекстовый файл 1.txt содержит следующее:
SELECT * FROM <ТАБЛИЦА SQL> WHERE <УСЛОВИЕ> GROUP BY <...> и т.д.
Это запрос SQL серверу, который выполняется объектом SQL, ты же хочешь выполнить код на том же языке. Попробуй в дельфях код на паскале прочитать и выполнить, т.е. в 1.txt вставь это
Код: sql
1.
2.
SQL.Clear;
SQL.LoadFromFile('1.txt');
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39022539
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TВ фоксе тоже можно прочитать файл
Код: sql
1.
lcText = FileToStr('1.txt')


затем меняй lcText и пиши обратно
Код: sql
1.
StrToFile(lcText, '1.txt')


ularsoftТекстовый файл 1.txt содержит следующее:
SELECT * FROM <ТАБЛИЦА SQL> WHERE <УСЛОВИЕ> GROUP BY <...> и т.д.
Это запрос SQL серверу, который выполняется объектом SQL, ты же хочешь выполнить код на том же языке. Попробуй в дельфях код на паскале прочитать и выполнить, т.е. в 1.txt вставь это
Код: sql
1.
2.
SQL.Clear;
SQL.LoadFromFile('1.txt');



Это был просто пример
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39022546
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил. Не будет работать. Код теста
Код: sql
1.
2.
3.
4.
lcText = "MessageBox('Test')"
lcText = lcText + chr(13) + chr(10) + "MessageBox('Test2')"
StrToFile(lcText, 'mytest.prg')
do mytest.prg



Если запустить из IDE фокса, то выдает оба сообщения.
Если откомпилировать в EXE и запускать EXE, то выходит только первое.

Не совсем так как я писал выше, но все-равно не заработало.
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39022555
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TПроверил. Не будет работать. Код теста
Код: sql
1.
2.
3.
4.
lcText = "MessageBox('Test')"
lcText = lcText + chr(13) + chr(10) + "MessageBox('Test2')"
StrToFile(lcText, 'mytest.prg')
do mytest.prg



Если запустить из IDE фокса, то выдает оба сообщения.
Если откомпилировать в EXE и запускать EXE, то выходит только первое.

Не совсем так как я писал выше, но все-равно не заработало.

Короче, безнадежно да
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39022593
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoft,

Код: sql
1.
2.
3.
lcText = "MessageBox('Test')"
lcText = lcText + chr(13) + chr(10) + "MessageBox('Test2')"
EXECSCRIPT(lcText) 
...
Рейтинг: 0 / 0
Чтение из текстового файла
    #39022607
ularsoftDima TПроверил. Не будет работать. Код теста
Код: sql
1.
2.
3.
4.
lcText = "MessageBox('Test')"
lcText = lcText + chr(13) + chr(10) + "MessageBox('Test2')"
StrToFile(lcText, 'mytest.prg')
do mytest.prg



Если запустить из IDE фокса, то выдает оба сообщения.
Если откомпилировать в EXE и запускать EXE, то выходит только первое.

Не совсем так как я писал выше, но все-равно не заработало.

Короче, безнадежно даНе безнадежно. Есть в фоксе возможность выполнить в рантайме фоксовый код, лежащий в любом файле. Но вот использование этого для изменения настроек отчетов - из пушки по воробьям.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Чтение из текстового файла
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]