powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / загрузка данных из файла
24 сообщений из 24, страница 1 из 1
загрузка данных из файла
    #35288240
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!! Подскажите, пож, как можно реализовать загрузку данных в базу из файла .dbf или .txt? Если можно примерчик какой-нибудь??? Плиззз...
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35288786
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
для файла .txt. ПОМОГИТЕ, пож!!!!
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35288829
Александр Коблов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, насколько это примерчик
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
s f="c:\temp\file.txt"
o f:("RK\CP1251\") ; смотря какая кодировка
u f r s ; Заголовки столбцев
	f  {	u f r s
		q:$ZEOF=- 1 
            ;разбираете строку, сохраняете куда нужно
 }
c f
--------
Cache for Windows (x86-32) 2008.1 (Build 401U) Tue Feb 26 2008 11:46:52 EST
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35290343
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dahaкак можно реализовать загрузку данных в базу из файла .dbf
Тут, как минимум, есть два путя...
- создать внешнее подключение и брать данные SQL запросом (мне давали примеры тут)
- воспользоваться нашей программкой для чтения/записи dbf файлов
Dahaили .txt?
Смотря как там организованы данные...
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35291545
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в файле .txt данные каждого объекта расположены построчно, поля в строке разделяются знаком "^". Киньте, пож, примерчик)))
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35291602
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вооружитесь функциями
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
FOpen(File,Typ,Sym) ; *  Открыть файл *
 S Typ=$G(Typ,"WNS")
 S:Typ="W" Typ="WNS"
 S:Typ="R" Typ="RS"
 S Sym=$G(Sym,$C( 13 , 10 ))
 I $ZU( 68 , 40 , 1 )
 q:":\/"[$e(File,$l(File)) ""
 I Sym'="" O File:(Typ::Sym): 0  Q:$T File Q ""
 O File:(Typ::""): 0 
 Q:$T File
 Q ""
FEnd() ; * Достигнут конец файла  *
 N use
 S use= 1 
 S:$D(%use) use=%use
 I $ZEOF=- 1  U:use $P Q  1 
 Q  0 
Тогда можно воспользоваться примером
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
TEST
 n
 s file="c:\test.txt"
 s drv=$$FOpen(file,"R")
 q:drv=""
 do {
    u drv
    r str
    s end=$$FEnd
    u $p
    w !,str
 } while end
 c drv
 q
Писал пример прямо тут... Но идея наверно понятна...
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35291603
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Условие в цикле с точностью "до наоборот"
Код: plaintext
 } while 'end
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35291807
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выход из цикла надо делать сразу по результатам проверки на конец файла:
Код: plaintext
 s end=$$FEnd quit:end
иначе программа вылетит по <UNDEFINED> по достижении конца файла на строке
Код: plaintext
 w !,str
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35291970
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovВыход из цикла надо делать сразу по результатам проверки на конец файла:
Код: plaintext
 s end=$$FEnd quit:end

Если так сделать то вы не увидите единственную строку в файле, т.к. после ее считывания будет достигнут конец файла...

Ведь я сразу написал, что мой пример это некая иллюстрация работы функций и не более того.
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35292007
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslovиначе программа вылетит по <UNDEFINED>
Только что проверил
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
TEST
 n
 s file="c:\box\test.txt"
 s drv=$$FOpen^ASYS(file,"R")
 q:drv=""
 do {
    u drv
    r str
    s end=$$FEnd^ASYS
    u $p
    w !,str
 } while 'end
 c drv
 q
Ничего не вылетает. На файле с данными все работает. Создал в far "пустой" файл - так же без ошибок все...
Т.ч. понапраслину написал.
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35295891
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня на строке s drv=$$FOpen^ASYS(file,"R") вылетает ошибка "A run-time error occurred while executing the page". Подскажите, пож, куда описание этой функции надо написать, я просто еще не знаю всех этих тонкостей????
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35295912
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот вам полный пример

Код: plaintext
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.
30.
TEST ; * Пример работы с файлом *
 n
 s file="c:\test.txt"
 s drv=$$FOpen(file,"R")
 q:drv=""
 do {
    u drv
    r str
    s end=$$FEnd
    u $p
    w !,str
 } while 'end
 c drv
 q
FOpen(File,Typ,Sym) ; *  Открыть файл *
 S Typ=$G(Typ,"WNS")
 S:Typ="W" Typ="WNS"
 S:Typ="R" Typ="RS"
 S Sym=$G(Sym,$C(13,10))
 I $ZU(68,40,1)
 q:":\/"[$e(File,$l(File)) ""
 I Sym'="" O File:(Typ::Sym): 0  Q:$T File Q ""
 O File:(Typ::""): 0 
 Q:$T File
 Q ""
FEnd() ; * Достигнут конец файла  *
 N use
 S use= 1 
 S:$D(%use) use=%use
 I $ZEOF=- 1  U:use $P Q  1 
 Q  0 
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35295915
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dahaошибка "A run-time error occurred while executing the page"
Так ты это в csp-странице запускаеш?
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35295927
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
угу, мне надо на странице...))
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35296020
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
помогите, плизззз)))) или подскажите, где можно почитать?))
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35296027
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dahaугу, мне надо на странице...))
А куда данные будеш девать?
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35296062
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну подскажите тогда как лучше сделать, где писать??? плизззз....
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35296065
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dahaмне надо на странице...))
А файлы откуда будеш брать? С сервера или с клиета?
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35296078
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с клиента
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35296101
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dahaс клиента
Это хуже...

Сейчас сделаю примерчик для варианта "по сети"... А в доках есть пример чтения с клиента. Посмотри примеры в семплс...
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35296130
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот примерчик чтения файлос "по сети"...

Код: plaintext
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
<html>
<head>
<title>Test</title>
<script type='text/javascript'>
function Load() {
	var val=document.getElementById('file').value
	if (val=='') {
		alert('Укажите путь и ммя файла...')
		return false
	}
	val=#server(..cLoad(val))#
	if (val== 1 ) {
		alert('Файл загружен!')
		return true
	}
	alert(val)
	return false
}
</script>
</head>
<csp:method name="cLoad" arguments="File:%String" returntype="%String">  
   // Прочитать данные из файла
   n drv,i,str
	s drv=..cFOpen(File,"R")
	q:drv="" "Нет возможности открыть файл..."
	k ^tmp
	u drv
	do {
		r str
		s ^tmp($i(i))=str
	} while $ZEOF'=-1
	c drv
	q 1
</csp:method>
<csp:method name="cFOpen" arguments="File:%String,Typ:%String,Sym:%String" returntype="%String">  
   // Открыть файл
	S Typ=$G(Typ,"WNS")
	S:Typ="W" Typ="WNS"
	S:Typ="R" Typ="RS"
	S Sym=$G(Sym,$C(13,10))
	I $ZU(68,40,1)
	q:":\/"[$e(File,$l(File)) ""
	I Sym'="" O File:(Typ::Sym): 0  Q:$T File Q ""
	O File:(Typ::""): 0 
	Q:$T File
	Q ""
</csp:method>
<body>
<form>
<table>
<tr>
<td>Файл
<td><input type='file' id='file' value=''>
<td><input type='button' value='Загрузить' onclick='Load()'>
</table>
</form>
</body>
</html>
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35296153
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это пример из доков по чтению файла с клиента.

Код: plaintext
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
<!-- Copyright (c) 2001 InterSystems Inc. ALL RIGHTS RESERVED. -->
<csp:class description="Demo of how to upload a file from the browser.">
<html>

<head>
</head>

<body bgcolor="#CCCCFF">

<!-- display standard sample template using a custom tag -->
<isc:SAMPLE title="Upload a file Sample">
This sample uses an '<input type=file>' element in a form to upload a file
from the web browser to CSP. Pick a file and hit the submit button to try it.
</isc:SAMPLE>

<!-- HTML Form to submit the file. You must specify the enctype="multipart/form-data" -->
<!-- for this to work -->
<form action="upload.csp" enctype="multipart/form-data" method="post">
    Enter a file to upload here: <input name=FileStream size= 30  type=file>
    <p>
    <ul><input type="submit" value="Upload file"></ul>
    <p>
</form>

<!-- As form is submitted to this page look to see if we have the stream in the %request object -->
<csp:if condition='($data(%request.MimeData("FileStream",1)))'>
    <hr><br>
    Submitted filename: <b>#(%request.MimeData("FileStream", 1 ).FileName)#</b><br>
    Size of file: <b>#(%request.MimeData("FileStream", 1 ).Size)#</b><br>
    Mime Section: <b>#(%request.MimeData("FileStream", 1 ).MimeSection)#</b><br>
    Type of stream: <b>#(%request.MimeData("FileStream", 1 ).%ClassName( 1 ))#</b><br>
    Content Type: <b>#(%request.MimeData("FileStream", 1 ).ContentType)#</b><br>
    <br>
    First  200  characters of stream:<br>
    <ul>
    <script language="Cache" runat="server">
        New bytes
        Set bytes=%request.MimeData("FileStream", 1 ).Read( 200 )
        Set bytes=##class(%CSP.Utils).DecodeData(bytes)
        Write bytes,!
    </script>
    </ul>
</csp:if>

</body>
</html>

Но там чтение идет по 200 символов... На строчки придется самой разбивать.
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35296215
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибки большие, буду разбираться)))
...
Рейтинг: 0 / 0
загрузка данных из файла
    #35296273
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dahaбуду разбираться)))
Да тут уже пора "вставлять и использовать"!
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / загрузка данных из файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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