|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
Здр-те форумчане! Я использую Excel для вывода отчетов из FoxPro. Информации в отчетах меняются каждый месяц и мне приходиться изменить все эти настройки в коде программы и заменить на сервере exe файл на следующий день. Можно ли в текстовом файле все изменить, а в программе читать содержимое текстового файла? К примеру, текстовый файл 1.txt, файл содержит тексты. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 13:53 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
Памятуя Ваш прошлый пост: 1. У Вас меняется структура файла Excel? 2. У Вас меняется текст в ячейках Excel? 3. Если настройки содержаться в файле, то чем замена файла легче exe? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 14:00 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
T1gRa_NTПамятуя Ваш прошлый пост: 1. У Вас меняется структура файла Excel? 2. У Вас меняется текст в ячейках Excel? 3. Если настройки содержаться в файле, то чем замена файла легче exe? Форма отчета в Excel не меняется, только данные. Я хотел написанные мною в программе коды сохранить в текстовом файле и читать его в Foxpro. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 14:17 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
Уже лучше. Коды чего? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 14:20 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 14:25 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
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') ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 14:38 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
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.
Следующий вопрос: данные меняются, у них меняются типы или местоположение в Excel? Или у Вас меняется место взятия шаблона файла? ularsoftФорма отчета в Excel не меняется, только данные. Так данные и должны меняться каждый месяц, разве не? Но сама форма отчета крайне редко, если она меняется каждый месяц, это повод задуматься о её необходимости в таком в виде и продумать может избыточную но полную или разбить на несколько решающих каждую свою функцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 14:58 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
ularsoftи открыть в фоксе FOPEN(ALLTRIM(sysfile.s_pathfwp)+'1.txt') Если сильно хочется я б хранил данные в таблице MySQL и брал оттуда. Меньше локальных файлов, меньше геморроя. Но все-таки полностью и понятно сформулируйте стоящию перед Вами задачу, ато опять гадание на кофейной гуще. Оффтоп: Если живете в ЕКБ, то могу помочь очно . Давно не пил пиво. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 15:04 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
Ну если хоте с файлом, то пожалуйте. Гуглите символ перевода строки, и берите настройки из файла. ИМХО: "Путь не очень." или вообще не понял задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 15:52 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
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, чтобы не менять в программе. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 11:58 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
ularsoftт.к. будет меняться CALCULATE sum(T1_n) TO sm FOR INLIST(t1_1,'123') где 123. Может добавиться еще 456 или 789. Вот поэтому хочу в текстовом файле добавлять или удалять эти 123, 456, 789, чтобы не менять в программе. Месье знает толк в извращениях Может по-человечески лучше сделать? Для этого параметры придумали. Передавай в параметрах свое 123. Если значений переменное количество: делай курсор и передавай в параметрах его имя. PS Не надо в кучу мешать код и данные, никогда ничего хорошего из этого не получалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 12:10 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
а не легче эти "123, 456, 789" передавать как значения? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 12:14 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
Dima Tularsoftт.к. будет меняться CALCULATE sum(T1_n) TO sm FOR INLIST(t1_1,'123') где 123. Может добавиться еще 456 или 789. Вот поэтому хочу в текстовом файле добавлять или удалять эти 123, 456, 789, чтобы не менять в программе. Месье знает толк в извращениях Может по-человечески лучше сделать? Для этого параметры придумали. Передавай в параметрах свое 123. Если значений переменное количество: делай курсор и передавай в параметрах его имя. PS Не надо в кучу мешать код и данные, никогда ничего хорошего из этого не получалось. Нельзя что ли просто сохранить выше коды в 1.txt и вызвать его? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 12:18 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
Dima T, опередили. ularsoftВот поэтому хочу в текстовом файле добавлять или удалять эти 123, 456, 789, чтобы не менять в программе. Код вывода в эксель не трогай! Если меняются только они, передавай их как переменную! Создай для них поле или таблицу в SQL и бери оттуда в курсор и усё, будет тебе счастье! А то что хочешь сделать ты - я поддержу Dima T, - извращение! И обновлять легче, никакого копирование файлов. Если ты хочешь хранить в файле код вывода в excel и постоянного его обновлять, то сделай его внешним вызовом. Но сразу продумай обновление в автоматическом режиме! Самое простое, скомпилируй, переведи в hex загрузи в базу и проставь дату! Программа постучится, посмотрит, что дата обновилась, скачет и соберет с заменой старого тебе новый модуль. Никаких ручных копирований и т.д. У всех пользователь актуальная версия и счастье. То что хочешь сделать ты в корне не правильно! P.S. Тэг: "Выделение исходников" придуман не зря. Форматирование программного кода тоже полезная вещь! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 12:23 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
ularsoftНельзя что ли просто сохранить выше коды в 1.txt и вызвать его? Можно, но в корне неправильно! с помощью: T1gRa_NTНу если хоте с файлом, то пожалуйте. Гуглите символ перевода строки, и берите настройки из файла. т.е. грубо говоря нужно со строк из файла собрать prg и запустить её исполнение. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 12:29 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
ularsoftНельзя что ли просто сохранить выше коды в 1.txt и вызвать его? Тогда уж 1.prg Если не путаю, из готового exe не запустится, т.к. сначала prg компилируется в fxp, а компиляция без установленного фокса невозможна. Устанавливать фокс всем юзерам подряд - это нелегальное распространение ПО, уголовно-наказуемо. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 12:29 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
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 <...> и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 12:52 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
ularsoft, Форматирование! Если так охота, как правильно сказал Dima T, Dima TТогда уж 1.prg ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 13:08 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
В фоксе тоже можно прочитать файл Код: sql 1.
затем меняй lcText и пиши обратно Код: sql 1.
ularsoftТекстовый файл 1.txt содержит следующее: SELECT * FROM <ТАБЛИЦА SQL> WHERE <УСЛОВИЕ> GROUP BY <...> и т.д. Это запрос SQL серверу, который выполняется объектом SQL, ты же хочешь выполнить код на том же языке. Попробуй в дельфях код на паскале прочитать и выполнить, т.е. в 1.txt вставь это Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 13:12 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
Dima TВ фоксе тоже можно прочитать файл Код: sql 1.
затем меняй lcText и пиши обратно Код: sql 1.
ularsoftТекстовый файл 1.txt содержит следующее: SELECT * FROM <ТАБЛИЦА SQL> WHERE <УСЛОВИЕ> GROUP BY <...> и т.д. Это запрос SQL серверу, который выполняется объектом SQL, ты же хочешь выполнить код на том же языке. Попробуй в дельфях код на паскале прочитать и выполнить, т.е. в 1.txt вставь это Код: sql 1. 2.
Это был просто пример ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 13:17 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
Проверил. Не будет работать. Код теста Код: sql 1. 2. 3. 4.
Если запустить из IDE фокса, то выдает оба сообщения. Если откомпилировать в EXE и запускать EXE, то выходит только первое. Не совсем так как я писал выше, но все-равно не заработало. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 13:26 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
Dima TПроверил. Не будет работать. Код теста Код: sql 1. 2. 3. 4.
Если запустить из IDE фокса, то выдает оба сообщения. Если откомпилировать в EXE и запускать EXE, то выходит только первое. Не совсем так как я писал выше, но все-равно не заработало. Короче, безнадежно да ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 13:30 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
ularsoft, Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 14:18 |
|
Чтение из текстового файла
|
|||
---|---|---|---|
#18+
ularsoftDima TПроверил. Не будет работать. Код теста Код: sql 1. 2. 3. 4.
Если запустить из IDE фокса, то выдает оба сообщения. Если откомпилировать в EXE и запускать EXE, то выходит только первое. Не совсем так как я писал выше, но все-равно не заработало. Короче, безнадежно даНе безнадежно. Есть в фоксе возможность выполнить в рантайме фоксовый код, лежащий в любом файле. Но вот использование этого для изменения настроек отчетов - из пушки по воробьям. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 14:32 |
|
|
start [/forum/topic.php?fid=41&msg=39022426&tid=1582296]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 123ms |
0 / 0 |