Считывание из txt файла
привет, можете подсказать как правильно считать значение из txt файла и записать это значение в переменную?
вот нашла код, только не пойму как записать var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.OpenTextFile("stat.txt")i while (!f.AtEndOfStream) document. write (f. ReadLine () +" <BR>") ; f .Close (); |
А ты сделай через php
открываеш файл $fh = f o p e n ( " f i l e l . t x t " , " w " ) ;\открываеш файл $line = f g e t s ( $ f h ) ;\Вытаскиваеш всё что нужно или допустим считаеш все строчки из файла while(ifeof($fh) ) { $line = rtrim(fgets($fh)); echo "$line"; } fclose($fh) |
Esca, используя javascript, файл можно будет получить только с этого же сайта на котором запускаете скрипт. Получить можно так (в скрипте 'file.txt' замените на адрес файла который вам нужен):
function getXmlHttp() { var xmlhttp; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { xmlhttp = new XMLHttpRequest(); } return xmlhttp; } (function () { var xmlhttp = getXmlHttp(); xmlhttp.open('GET', 'file.txt', false); xmlhttp.send(null); if (xmlhttp.status == 200) { var response = xmlhttp.responseText; alert(response); } })(); При загрузке страницы посылается ajax запрос к файлу, далее его содержимое записывается в переменную response, а потом содержимое переменной выводится на экран alert'ом. Подробнее тут. |
Код который написала девушка работает только в IE. Этот код позволяет работать с локальной файловой системой через ActiveX.
К сожалению я не знаю какие методы надо использовать чтоб прочитать текстовый файл. Возможно нужно поискать на http://msdn.microsoft.com/ru-RU. |
как вывести текст не alert-ом, а например эту переменную response с текстом на страничке
|
Цитата:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>t</title> <style type="text/css"> </style> <script language="JavaScript"> function readfile() { var fso,filehandle,contents; fso = new ActiveXObject("Scripting.FileSystemObject"); filehandle = fso.OpenTextFile("C:\\Time\\info.txt",1); contents = filehandle.ReadAll(); if (contents) document.all("filecontents").value = contents; filehandle.close(); } </script> </head> <body onload="readfile()"> <textarea id="filecontents" cols="50" rows="30"></textarea> </body> </html> Открываете через IE (проверялось на 11 версии), запрашивает разрешение ActiveX, разрешаете. Считывает данные из Диска С, папка Time, файл info.txt И выводит в текстовый блок filecontents. Мне интересно другое - как бы записать в этот текстовый документ данные, Javascript'ом? Создать и записать туда - получается, а если я хочу просто открыть и записать? Вот это конечно да... |
Лучше юзать аплеты или flash для таких задач, т.к. active x тока под ИЕ.
|
У меня произошло озарение!
А вот и возможно! Тех кто писал выше, что это невозможно - проклинаю 10 раз! Делюсь двумя вариантами с комментариями. Первый - высвечивает текстовый блок, в котором ты забиваешь что-нибудь, и скрипт "дописывает" в существующий файл. <!DOCTYPE html> <html> <head> <title>Open and Write</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=10" /> <script language="JavaScript"> function WriteToFile() { var fso = new ActiveXObject('Scripting.FileSystemObject'); filehandle = fso.OpenTextFile("C:\\Time\\info.txt",1); /* Открывает файл*/ var first = filehandle.ReadAll(); /* Читает из файла и переменная first и есть весь текст, который он считал*/ var s = fso.CreateTextFile("C:\\Time\\info.txt", true); /* перезаписывает файл, открывает для редактирования*/ var second = document.getElementById("filecontents").value; /* Читает из текстбокса filecontents и переменная second и есть весь текст, который он считал*/ s.WriteLine (first); /* записывает весь текст из переменной first, имитирует Enter*/ s.WriteLine (second); /* записывает весь текст из переменной second, имитирует Enter*/ s.Close(); /*закрывает файл*/ } </script> </head> <body> <textarea id="filecontents" cols="50" rows="30"></textarea> <input type="button" value="Дописать" onclick="WriteToFile()"> </body> </html> Второй - считывает из файла, и высвечивает в текстблок. Ты там редактируешь, нажимаешь "Дописать", он заменяет файл с текстом из текстблока <!DOCTYPE html> <html> <head> <title>Open and Write</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=10" /> <script language="JavaScript"> function readfile() { var fso,filehandle,contents; fso = new ActiveXObject("Scripting.FileSystemObject"); filehandle = fso.OpenTextFile("C:\\Time\\info.txt",1);/* Открывает файл*/ contents = filehandle.ReadAll(); /* Читает из файла и переменная contents и есть весь текст, который он считал*/ if (contents) document.all("filecontents").value = contents; /* Вставляет в текстбокс filecontents текст contents*/ filehandle.close();/* Закрывает файл*/ } function WriteToFile() { var fso = new ActiveXObject('Scripting.FileSystemObject'); var s = fso.CreateTextFile("C:\\Time\\info.txt", true); /* перезаписывает файл, открывает для редактирования*/ var second = document.getElementById("filecontents").value; /* Читает из текстбокса filecontents и переменная second и есть весь текст, который он считал*/ s.WriteLine (second); /* записывает весь текст из переменной second, имитирует Enter*/ s.Close(); /*закрывает файл*/ } </script> </head> <body onload="readfile()"> <textarea id="filecontents" cols="50" rows="30"></textarea> <input type="button" value="Дописать" onclick="WriteToFile()"> </body> </html> |
Отдельно могу выслать тоже самое, только реализованное во Flash (ActionScript3)
Он в принципе тоже обращается к JavaScript, тоже работает только на ИЕ, и тоже без запроса сохраняет куда надо. В чем отличие - оформлять можно по-разному форму эту. Фотошопом, например :) + валяется в интернете Flash файл с исходниками называется loadsavetextfile Там он подгружает текст по кнопке, и сохраняет по кнопке. В чем отличие - он предлагает пользователю откуда считать данные, и куда и под каким именем сохранить (или перезаписать) |
Часовой пояс GMT +3, время: 05:42. |