Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / загрузка данных из файла / 24 сообщений из 24, страница 1 из 1
30.04.2008, 12:25
    #35288240
Daha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка данных из файла
Добрый день!! Подскажите, пож, как можно реализовать загрузку данных в базу из файла .dbf или .txt? Если можно примерчик какой-нибудь??? Плиззз...
...
Рейтинг: 0 / 0
30.04.2008, 14:47
    #35288786
Daha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка данных из файла
для файла .txt. ПОМОГИТЕ, пож!!!!
...
Рейтинг: 0 / 0
30.04.2008, 14:55
    #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
02.05.2008, 10:57
    #35290343
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка данных из файла
Dahaкак можно реализовать загрузку данных в базу из файла .dbf
Тут, как минимум, есть два путя...
- создать внешнее подключение и брать данные SQL запросом (мне давали примеры тут)
- воспользоваться нашей программкой для чтения/записи dbf файлов
Dahaили .txt?
Смотря как там организованы данные...
...
Рейтинг: 0 / 0
04.05.2008, 09:26
    #35291545
Daha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка данных из файла
в файле .txt данные каждого объекта расположены построчно, поля в строке разделяются знаком "^". Киньте, пож, примерчик)))
...
Рейтинг: 0 / 0
04.05.2008, 09:59
    #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
04.05.2008, 10:01
    #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
04.05.2008, 11:47
    #35291807
Alexey Maslov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка данных из файла
Выход из цикла надо делать сразу по результатам проверки на конец файла:
Код: plaintext
 s end=$$FEnd quit:end
иначе программа вылетит по <UNDEFINED> по достижении конца файла на строке
Код: plaintext
 w !,str
...
Рейтинг: 0 / 0
04.05.2008, 12:58
    #35291970
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка данных из файла
Alexey MaslovВыход из цикла надо делать сразу по результатам проверки на конец файла:
Код: plaintext
 s end=$$FEnd quit:end

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

Ведь я сразу написал, что мой пример это некая иллюстрация работы функций и не более того.
...
Рейтинг: 0 / 0
04.05.2008, 13:09
    #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
06.05.2008, 08:59
    #35295891
Daha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка данных из файла
У меня на строке s drv=$$FOpen^ASYS(file,"R") вылетает ошибка "A run-time error occurred while executing the page". Подскажите, пож, куда описание этой функции надо написать, я просто еще не знаю всех этих тонкостей????
...
Рейтинг: 0 / 0
06.05.2008, 09:09
    #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
06.05.2008, 09:10
    #35295915
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка данных из файла
Dahaошибка "A run-time error occurred while executing the page"
Так ты это в csp-странице запускаеш?
...
Рейтинг: 0 / 0
06.05.2008, 09:15
    #35295927
Daha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка данных из файла
угу, мне надо на странице...))
...
Рейтинг: 0 / 0
06.05.2008, 09:57
    #35296020
Daha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка данных из файла
помогите, плизззз)))) или подскажите, где можно почитать?))
...
Рейтинг: 0 / 0
06.05.2008, 10:03
    #35296027
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка данных из файла
Dahaугу, мне надо на странице...))
А куда данные будеш девать?
...
Рейтинг: 0 / 0
06.05.2008, 10:12
    #35296062
Daha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка данных из файла
ну подскажите тогда как лучше сделать, где писать??? плизззз....
...
Рейтинг: 0 / 0
06.05.2008, 10:12
    #35296065
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка данных из файла
Dahaмне надо на странице...))
А файлы откуда будеш брать? С сервера или с клиета?
...
Рейтинг: 0 / 0
06.05.2008, 10:16
    #35296078
Daha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка данных из файла
с клиента
...
Рейтинг: 0 / 0
06.05.2008, 10:23
    #35296101
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка данных из файла
Dahaс клиента
Это хуже...

Сейчас сделаю примерчик для варианта "по сети"... А в доках есть пример чтения с клиента. Посмотри примеры в семплс...
...
Рейтинг: 0 / 0
06.05.2008, 10:33
    #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
06.05.2008, 10:42
    #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
06.05.2008, 11:02
    #35296215
Daha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка данных из файла
спасибки большие, буду разбираться)))
...
Рейтинг: 0 / 0
06.05.2008, 11:19
    #35296273
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузка данных из файла
Dahaбуду разбираться)))
Да тут уже пора "вставлять и использовать"!
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / загрузка данных из файла / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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