Strona 1 z 1

zapis do pliku przez skrypty

PostNapisane: 1 maja 2004, o 10:47
przez student_2004

PostNapisane: 1 maja 2004, o 12:45
przez januzi
raczej to podpada pod jave
ale tak czy tak plik zapisze sie w tymczasowych

PostNapisane: 3 maja 2004, o 23:07
przez student_2004
moze byc zapisany gdziekolwiek... no tylko jak?
javy akurat nie znam :(
w javascript sie troche orientuje wiec jak masz jakis konkretny pomysl to bylbym wdzieczny ( albo chociaz jakis link do strony na ktorej moglbym znalezc jakies interesujace mnie informacje)

PostNapisane: 4 maja 2004, o 00:52
przez lockoom

PostNapisane: 4 maja 2004, o 17:16
przez student_2004

PostNapisane: 5 maja 2004, o 21:56
przez Wydra707

PostNapisane: 6 maja 2004, o 19:44
przez student_2004
Staryyyyyyyyyyyy to jest dokladnie to czego szukalem :D wielkie dzieki :!:
Pierwszy skrypt pod xp tworzy plik, tylko ze pusty:(
no ale to niewazne, bo ten drogi dziala dokladnie tak, jak chcialem. Sprawdzilem go na serwerze i wszystko jest ok :D .
Nie dodaje nowych linii, otwiera sie okienko do zapisu do wybranego katalogu i pliku. Po prostu tak jak powinno byc :) !
Jeszcze raz dzieki!

PostNapisane: 6 maja 2004, o 23:43
przez Wydra707
Fajnie, że pomysł na coś Ci się przydał. Niedobrze jednak, że na XP nie działa pierwszy przykład, bo na FSO bazuje z kolei mój serwis (off-line).

Ale to dziwne co piszesz... Skoro plik został utworzony bezbłędnie, nie ma żadnego powodu, dla którego miałby być pusty (spodziewałem się raczej odmowy dostępu do dysku). Możesz spróbować ponownie? Poniżej troszkę rozbudowany test - utworzy plik c:\test1.txt, zapisze do niego tekst, zamknie plik, po czym otworzy go ponownie i odczyta. Na ekranie wyświetli efekty poszczególnych kroków.

<SCRIPT TYPE="text/Jscript" LANGUAGE="JScript">
var oFSO=new ActiveXObject('Scripting.FileSystemObject');
document.write('FSO: '+typeof(oFSO));
var oPlikTS=oFSO.CreateTextFile('c:\\test1.txt', true, false);
document.write('<BR>TextStream: '+typeof(oPlikTS));
oPlikTS.Write('To jest tekst w pliku testowym');
document.write('<BR>Kolumna: '+oPlikTS.column);
oPlikTS.Close();
var oFile=oFSO.GetFile('c:\\test1.txt');
document.write('<BR><BR>Nazwa: '+oFile.Name);
document.write('<BR>Wielkość: '+oFile.Size);
document.write('<BR>Utworzony: '+oFile.DateCreated);
oPlikTS=oFile.OpenAsTextStream(1, 0);
document.write('<BR>'+oPlikTS.ReadAll());
oPlikTS.Close();
</SCRIPT>

I jaki jest efekt..?

Pozdrawiam
Paweł Rajewski

PostNapisane: 7 maja 2004, o 02:14
przez student_2004
ostatni przyklad dziala bez zarzutu:)
co wiecej, sprawdzilem jeszcze raz ten pierwszy i... tez dziala :?
nie mam pojecia dlaczego wczesniej nie zapisywalo? moze gdzies tam namieszalem :oops:
podsumowujac: wszystkie trzy skrypty dzialaja!

w pierwszym i ostatnim przed zapisem pojawia sie alert() z tekstem mowiacym, ze "interakcja formantu activX z innymi czesciami tej strony moze byc niebezpieczna! czy chcesz zezwolic na interakcje?" po wybraniu tak zapisuje i juz... :lol:

PostNapisane: 7 maja 2004, o 16:14
przez Wydra707
Dzięki "Student", no to pomogliśmy sobie wzajemnie :-)

Uwagi do skryptów:

1. FileSystemObject działa TYLKO off-line. Tzn. można z niego korzystać na stronie HTML uruchomionej z dysku lokalnego albo w samodzielnym skrypcie *.js lub *.vbs (oczywiście też uruchomionym lokalnie). FSO nie działa na stronie ściągniętej z Sieci. Natomiast w aplikacji HTA działa bez komunikatu z ostrzeżeniem.

2. Pomysł z automatycznym "zapisywaniem jako" wcale nie jest taki pewny. Zapisuje po prostu bieżącą stronę HTML w formie pliku tekstowego, czyli pomijając znaczniki. Zauważyłeś pewnie, że skrypt usuwa tytuł strony - bo tytuł traktowany jest jak tekst i dopisywany do pliku. Gdyby w sekcji BODY znajdował się jakiś inny tekst, też należałoby go usunąć przed zapisem.

Jako że pomysł bazuje na gotowej funkcji przeglądarki, może dać nieprzewidziane efekty gdyby z czasem zmieniono działanie funkcji "zapisz jako". Być może kolejny Explorer (7,8,9...) zacznie dopisywać do pliku tekstowego datę albo adres (podobnie jak dzieje się to już dziś przy zapisywaniu jako plik HTML). W sumie cały ten pomysł to takie łatanie...

3. Oczywiście wszystko działa tylko w Internet Explorerze.

Pozdrawiam
Paweł Rajewski