Interfete 4 Web - Carcoteala zilnica despre interfete web: Javascript - cum sa citest dintr-un fisier

Javascript - cum sa citest dintr-un fisier

Download exemplu

In unele interfete web este nevoie sa se poata deschide si incarca fisiere locale. Un exemplu bun este Google Docs unde incarci un fisier local si il stochezi/editezi online.

Pentru Internet Explorer deschiderea unui fisier html si afisarea lui s-ar face cam asa:

- In primul rand cream un buton de browse:

< form name=form1>
< input type=file name="browse" onChange="afisare()" onClick="sterge()">
< /form>

- Spatiul din pagina in care se va face afisarea este un container: < div id ="test">

- Deschiderea si citirea din fisier se va face cu ajutorul ActiveXObject de tipul FileSystemObject si functiei OpenTextFile:

var myFileSysObj = new ActiveXObject("Scripting.FileSystemObject");
var myInputTextStream = myFileSysObj.OpenTextFile(document.form1.browse.value, 1, true);
if(myInputTextStream.AtEndOfStream)
{
alert("file is empty");
sterge();
return;
}
var str = new String(myInputTextStream.ReadAll());
var d = document.getElementById('test');
d.innerHTML=str;
myInputTextStream.Close();

- Numele fisierului l-am extras din campul browse document.form1.browse.value si inainte de a citi tot fisierul myInputTextStream.ReadAll() am verificat daca fisierul nu e gol sau s-a ajuns la capatul stream-ului if(myInputTextStream.AtEndOfStream), caz in care ReadAll ar fi generat eroare.

Fisierul fiind deschis intr-un string, acum fisierul poate fi modificat sau se pot face cautari utilizand proprietatile si functiile obiectelor de tip string ca de exemplu: str.length, str.slice(start_index, stop_index), str.lastIndexOf(string, start_index), str.indexOf(string,start_index), str.substr(start_index,nr_of_char)

Un alt obiect foarte util pentru prelucrarea stringurilor in javascript este RegExp pentru utilizarea expresiilor regulate. Crearea unui obiect RegExp se poate face asa:

var myregexp = /regex/;
sau
re = new RegExp("\\w+");
Un exemplu de utilizare combinata a obiectelor String si RegExp ar fi urmatoarul:
myString.replace(myregexp, "replacement")

Niciun comentariu:

Trimiteți un comentariu