Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.03.2011, 19:52
Новичок на форуме
Отправить личное сообщение для Esca Посмотреть профиль Найти все сообщения от Esca
 
Регистрация: 20.02.2011
Сообщений: 3

Считывание из 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 ();
Ответить с цитированием
  #2 (permalink)  
Старый 24.03.2011, 11:15
Аспирант
Отправить личное сообщение для Геворг Посмотреть профиль Найти все сообщения от Геворг
 
Регистрация: 21.01.2011
Сообщений: 60

А ты сделай через 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)
Ответить с цитированием
  #3 (permalink)  
Старый 24.03.2011, 11:28
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

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'ом.
Подробнее тут.
Ответить с цитированием
  #4 (permalink)  
Старый 24.03.2011, 14:52
Аватар для Magneto
Люмус, Емаксос Developer!
Отправить личное сообщение для Magneto Посмотреть профиль Найти все сообщения от Magneto
 
Регистрация: 06.05.2010
Сообщений: 677

Код который написала девушка работает только в IE. Этот код позволяет работать с локальной файловой системой через ActiveX.

К сожалению я не знаю какие методы надо использовать чтоб прочитать текстовый файл.

Возможно нужно поискать на http://msdn.microsoft.com/ru-RU.
Ответить с цитированием
  #5 (permalink)  
Старый 25.03.2014, 23:34
Новичок на форуме
Отправить личное сообщение для victor_as Посмотреть профиль Найти все сообщения от victor_as
 
Регистрация: 23.03.2014
Сообщений: 9

как вывести текст не alert-ом, а например эту переменную response с текстом на страничке
Ответить с цитированием
  #6 (permalink)  
Старый 24.06.2015, 17:31
Новичок на форуме
Отправить личное сообщение для KNeaDeD Посмотреть профиль Найти все сообщения от KNeaDeD
 
Регистрация: 08.04.2015
Сообщений: 7

Сообщение от victor_as Посмотреть сообщение
как вывести текст не 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'ом? Создать и записать туда - получается, а если я хочу просто открыть и записать? Вот это конечно да...
Ответить с цитированием
  #7 (permalink)  
Старый 24.06.2015, 18:52
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Лучше юзать аплеты или flash для таких задач, т.к. active x тока под ИЕ.
__________________
kobezzza
code monkey
Ответить с цитированием
  #8 (permalink)  
Старый 24.06.2015, 18:55
Новичок на форуме
Отправить личное сообщение для KNeaDeD Посмотреть профиль Найти все сообщения от KNeaDeD
 
Регистрация: 08.04.2015
Сообщений: 7

У меня произошло озарение!

А вот и возможно! Тех кто писал выше, что это невозможно - проклинаю 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>
Ответить с цитированием
  #9 (permalink)  
Старый 24.06.2015, 18:58
Новичок на форуме
Отправить личное сообщение для KNeaDeD Посмотреть профиль Найти все сообщения от KNeaDeD
 
Регистрация: 08.04.2015
Сообщений: 7

Отдельно могу выслать тоже самое, только реализованное во Flash (ActionScript3)
Он в принципе тоже обращается к JavaScript, тоже работает только на ИЕ, и тоже без запроса сохраняет куда надо.
В чем отличие - оформлять можно по-разному форму эту. Фотошопом, например

+ валяется в интернете Flash файл с исходниками называется loadsavetextfile
Там он подгружает текст по кнопке, и сохраняет по кнопке.
В чем отличие - он предлагает пользователю откуда считать данные, и куда и под каким именем сохранить (или перезаписать)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение и запись с txt или csv файла vitaver AJAX и COMET 0 23.12.2010 20:43
Разбор строки из txt файла guffer Общие вопросы Javascript 4 18.05.2010 10:21
ззапись файла через fopen по протоколу ftp PeaceCoder Серверные языки и технологии 6 06.03.2010 13:39
Как узнать какие ошибки произошли при парсинге xml файла faunder Events/DOM/Window 0 12.09.2008 14:17
свойство innerHTML и Построчное считывание с файла baal1988 Общие вопросы Javascript 7 14.08.2008 21:57