Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение CSV файла как текстовый 
:(
    Опции темы
pawlenty
Дата 18.7.2006, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 6.5.2006

Репутация: нет
Всего: нет



Нужно прочитать файл и вывести его, с файлами формата txt все прокатывает, а вот например с CSV не все так гладко - вот код HTMLки

Код
<html>

<body>
    <script language="JavaScript" type="text/javascript">
    <!--
    var srcFrame;
 
    //External content into a layer
    function loadOuter(doc) 
    {
        srcFrame = document.getElementById("hiddenContent");
        srcFrame.src = doc;       
        
        // workaround for missing onLoad event in IFRAME for NN6
        if (!srcFrame.onload) 
        {
            setTimeout("transferHTML()", 100)
        }
    }

    function transferHTML()
    {
        srcContent='';
        text='';
        if (srcFrame.contentDocument)
        {
            srcContent=srcFrame.contentDocument.getElementsByTagName("BODY")[0].innerHTML;
        }
        else if (srcFrame.contentWindow)
        {
            srcContent=srcFrame.contentWindow.document.body.innerHTML;
            text = srcFrame.contentWindow.document.body.innerText;
            
            //a=text.split("\n");
            //document.write(a);
                      
        }
        document.getElementById("outerDisplay").innerHTML = srcContent
    }  
    //-->
    </script>

<INPUT TYPE="button" VALUE="Test.txt" onClick="loadOuter('1.txt')" >

<div id="outerDisplay"></div>

<iframe id="hiddenContent" width="200" height="200" style="position:absolute;visibility:hidden;" ></iframe>

</body>

</html>


а вот текстовой файл Test.txt

one
two
three
four
five

если поменять расширение файла (и соответсвенно в HTML коде) на CSV - все летит.... Может кто нить знает как решить эту проблему?

Добавлено @ 14:43 
<INPUT TYPE="button" VALUE="Test.txt" onClick="loadOuter('1.txt')" >
не 1.txt а Test.txt smile   
PM MAIL   Вверх
Sardar
Дата 18.7.2006, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Убедись что .csv доступен по прямой ссылке. Также выкладывай  как ругаеться браузер (текст из к онсоли/текст ошибки). 


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
pawlenty
Дата 18.7.2006, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 6.5.2006

Репутация: нет
Всего: нет



просто IE пытается этот CSV файл сохранить как аттач, т.е вначале выскакивает диалог с кнопками open, save, cancel, а потом ошибка A Runtime error has occured  
PM MAIL   Вверх
Sardar
Дата 18.7.2006, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



pawlenty, я уже не говорю о том что нужно пользоваться кнопками Код и прочее, но тебе необходимо хотя бы понять, что здесь не телепаты. Выкладывай ссылку на страницу где увидеть можно, если скопировать текст ошибки с номером строки не хочешь smile

На вскидку:
  • левый  mime,  браузер хочет сохранить файл, ты жмёшь cancel, агрузка обрываеться, доступ к фрейму вызывает ошибку - наиболее вероятно
  • левый mime-type у документа, тега BODY просто не существует (автоматом создаёться даже если его нет если mime это text/html).
  • файл в чужом домене, у тебя нет доступа
  • ошибка вообще не здесь, а где нибудь где данные парсишь, не учёл что поля в кавычки збираються с экранирующими символами
  • да вообще что угодно может быть smile
  


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
12345c
Дата 19.7.2006, 01:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



csv привязан к Экселю, IE вызывает его, чтобы открыть в фрейме, возникает почему-то ошибка. Может, Эксель во фрейме вообще не умеет открываться?

Попробуйте читать через XMLHttpRequest, брать текст (если он без тегов) через responseText, выкладывать в фрейм через document.write(). Если с тегами, то безопасно кодировать при передаче. 
PM WWW   Вверх
pawlenty
Дата 19.7.2006, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 6.5.2006

Репутация: нет
Всего: нет



А можно поподробнее про последний способ, я в javaScript вообще не большой специалист, я думаю проблема в ActiveX. У меня hidden фрейме загружается реальный Excel, а кодна я из него копирую строкой:

srcContent=srcFrame.contentWindow.document.body.innerHTML;

тут то и вылетает, я пробовал посмотреть что во srcFrame - а там object  
PM MAIL   Вверх
Sardar
Дата 19.7.2006, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(pawlenty @  19.7.2006,  09:26 Найти цитируемый пост)
У меня hidden фрейме загружается реальный Excel

Ого, естественно ты innerHTML не достанешь. CSV это список полей (текст) через запятую, у редкого человека на него Excel открываеться.

Цитата(pawlenty @  19.7.2006,  09:26 Найти цитируемый пост)
А можно поподробнее про последний способ

Глянь в основном разделе в верху малое текстовое окошечко (такое же в правилах), вбей туда XMLHttpRequest, примеров и готовых решений масса.

P.S. млин пока до сути докопаешся...  smile 
 


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
pawlenty
Дата 19.7.2006, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 6.5.2006

Репутация: нет
Всего: нет



да фишка не в том что файл CSV, а дело в его расширении, если в CSV файле поменять расширение на TXT - все работает smile 
PM MAIL   Вверх
Sardar
Дата 19.7.2006, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Нет, фишка не в расширении, а в том какой mime-type отсылает твой сервак. Пропишешь что бы text/plain отсылал, будет как .txt приниматься браузером. Хотя проще и "круче" всё же аяксом дёргат (XmlHttpRequest).  


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
pawlenty
Дата 19.7.2006, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 6.5.2006

Репутация: нет
Всего: нет



Я наверное плохо выразился, но мне на сервер ничего отправлять не надо smile Задача в следующем: нужно открыть файл (txt, csv) на клиенте, извлечь из него данные тут же, запихнуть в textareas, а потом после собмита страницы, данные из этих textareas будут считываться (это уже не моя задача) , вот почему нужно загружать данные на клиенте без сабмитта smile мне нужно грубо говоря получить массив строк из файла.... вот и все smile 
PM MAIL   Вверх
Sardar
Дата 19.7.2006, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(pawlenty @  19.7.2006,  10:34 Найти цитируемый пост)
Я наверное плохо выразился, но мне на сервер ничего отправлять не надо

А тебе ничего загружать и не нужно, где я такого советовал smile
XmlHttpRequest позволяет дёрнуть с сервера любой файл, в responseText найдёшь свой .csv как текст, эксель даже при большом желании открыться не должен. Надеюсь браузер сообразит при mime не text/plain зачитать таки файл в responseText. 


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
pawlenty
Дата 19.7.2006, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 6.5.2006

Репутация: нет
Всего: нет



smile)))) фишка в том что файл тоже берется на клинте.... загвоздка вся в том что ActiveX приэтом использовать нельзя, потому что если она будет отключена, пользователь не загрузит файл  
PM MAIL   Вверх
Sardar
Дата 19.7.2006, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



pawlenty, а раньше ты этого не мог сказать?  smile 

Тогда никак. Абсолютно никак. ИЕ после SP1 все возможные способы загрузить файл закрыл, теперь "только через переполнение буффера" (с) bash.org.ru
И это не правда, что .txt файл тебе загрузить удалось, или ты на старой не пропатчиной винде 9х сидишь?

Как вариант псотавить форму с input:file, загрузить файл на сервак, выгрузить назад. Через ж. конечно, но что поделаешь. Если только сейчас не выясниться что это не вебстраничка вовсе, а ифейс к какой нибудь проге smile
В следующем посте выкладывай всё, где, как используеться, что требуеться. Не каждый сегодня бездельничает как я. 


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
pawlenty
Дата 19.7.2006, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 6.5.2006

Репутация: нет
Всего: нет



У меня такая идея уже давно сидит с uploadом, просто действительно получается через Ж, думал может будут идеи поразумнее...smile)) спасибо тогда, я и ссылку нашел, если кто еещ будет с такой фигней сталкиваться...
http://www.codeproject.com/aspnet/fileupload.asp 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0585 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.