Βοήθεια Πρόβλημα αποθήκευση δεδομένων χρησιμοποιώντας JS

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
interfix
Δημοσιεύσεις: 14
Εγγραφή: 28 Φεβ 2007 07:57

Βοήθεια Πρόβλημα αποθήκευση δεδομένων χρησιμοποιώντας JS

Δημοσίευση από interfix » 21 Δεκ 2008 19:10

Παιδιά είναι κάπως άσχετος με JS και έχω ένα πρόβλημα. Μου έχουν δώσει ένα κώδικα ο οποίος καταγράφει την κίνηση του ποντικιού στην οθόνη και μετά με το πάτημα ενός κουμπιού την επαναλαμβάνει.

όταν πατάμε το stop_record() function αυτό σταματάει την διαδικασία εγγραφής του mouse path.
Υπάρχει τώρα το Function savePath() - υπάρχει κάποιος τρόπος να αποθηκεύεται αυτό το path κάπου (πχ txt file, xml, ή κάτι τέτοιο)

Ευχαριστώ πολύ εξ αρχής

Εδώ υπαρχει ενα Demo (νομίζω παίζει μόνο με IE) -> Demo

Παραθέτω τον κώδικα


var posX, posY;
var path = new Array();
var index = 0;
var Num = 0;
var save = false;
var track = false
begintag = '<font face="Tahoma, Arial" size=1 color=black>'

function moveTo(x,y) // Cursor picture movement
{
rep.style.pixelLeft=x;
rep.style.pixelTop=y;
}

function drawTo(x,y) // Dot movement
{
dot.style.pixelLeft=x*200/screen.width+150;
dot.style.pixelTop=y*150/screen.height+15;
}

function wTo(x,y) // Data showing
{
data.innerHTML=begintag+'['+x+','+y+']</font>';
}

function savePath() // Path save, if you suppose fast mouse movements, reduce TimeOut
{
if((posX && posY) && save)
{
path[index] = posX;
path[index+1] = posY;
index += 2;
setTimeout('savePath()',10);
}
}

function run() //Replay the record
{
if(Num < (path.length-1))
{
moveTo(path[Num],path[Num+1])
drawTo(path[Num],path[Num+1])
wTo(path[Num],path[Num+1])
Num += 2;
setTimeout('run()',10);
}
else Num=0;
}

function cursor()
{
posX=event.x+document.body.scrollLeft;
posY=event.y+document.body.scrollTop;
}

function record()
{
if (!track)
{
index = 0;
save = true;
savePath();
}
else data.innerHTML=begintag+"A path has been recorded in memory.<br>Click 'Reset' if you wish to record new one.</font>";
}

function stop_record()

{
save = false;
index = 0;
time = (path.length/2)*0.1;
cValue = ""+time;
value = cValue.substring(0,4);
s = (cValue.substring(0) == 1 && cValue.indexOf(".") == -1)?"":"s";
data.innerHTML=begintag+"Time recorded in memory: "+value+" second"+s+" with interval 0.1s</font>";
track = true;
}

function reset()
{
rep.style.pixelLeft=50
rep.style.pixelTop=150
dot.style.pixelLeft=160;
dot.style.pixelTop=40;
data.innerHTML='';
posX=posY='';
path = new Array();
index = 0;
Num = 0;
save = false;
track = false;
}
document.onmousemove = cursor;

Άβαταρ μέλους
interfix
Δημοσιεύσεις: 14
Εγγραφή: 28 Φεβ 2007 07:57

Βοήθεια Πρόβλημα αποθήκευση δεδομένων χρησιμοποιώντας JS

Δημοσίευση από interfix » 30 Δεκ 2008 17:31

κανεις??

θέλω να δημιουργηθεί το όπoιο αρχείο clientside. δεν τρέχω το script στο internet

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Βοήθεια Πρόβλημα αποθήκευση δεδομένων χρησιμοποιώντας JS

Δημοσίευση από dva_dev » 30 Δεκ 2008 21:16

Δοκίμασε στην html σελίδα να βάλεις επιπλέον τον παρακάτω κώδικα

Κώδικας: Επιλογή όλων

<script type="text/javascript" language="javascript">
function doit&#40;&#41;
&#123;
	document.write&#40;"X,Y<br>"&#41;;
	for &#40;i=0; i<path.length-1; i+=2&#41;
	&#123;
		document.write&#40;path&#91;i&#93; + "," + path&#91;i+1&#93; + "<br>"&#41;;
	&#125;
&#125;
</script>
<a href="javascript&#58;doit&#40;&#41;">test create document with path coords</a>

Άβαταρ μέλους
interfix
Δημοσιεύσεις: 14
Εγγραφή: 28 Φεβ 2007 07:57

Βοήθεια Πρόβλημα αποθήκευση δεδομένων χρησιμοποιώντας JS

Δημοσίευση από interfix » 07 Ιαν 2009 18:35

σε ευχαριστω πολυ, με βοηθησε αρκετα αυτο που μου εγραψες. Τελικα εφτιαξα μια function με τον εξης κωδικα (τον παραθετω μηπως καποιος στο μελλον εχει το ιδιο προβλημα

Κώδικας: Επιλογή όλων

function WriteToFile&#40;&#41;//function for writiing data into files
   &#123;
    try 
    &#123;
     var fso = new ActiveXObject&#40;"Scripting.FileSystemObject"&#41;;//the FileSystemObject object is created
     var TextWriter = fso.OpenTextFile&#40;"D&#58;\\Tests.txt", 8&#41;
      TextWriter.WriteLine&#40;"Coordinates of Taks 1"&#41;;
       for &#40;i=0; i<CursorPath.length-1; i+=2&#41; 
        &#123;
          TextWriter.write&#40;"X,Y --> "&#41;; 
          TextWriter.WriteLine&#40;CursorPath&#91;i&#93; + "," + CursorPath&#91;i+1&#93;&#41;;
        &#125;
        TextWriter.WriteLine&#40;"Time to complete task&#58; "+value+" seconds"&#41;;
        TextWriter.WriteLine&#40;" "&#41;;
        TextWriter.WriteLine&#40;"---------------------------------------------"&#41;;
        TextWriter.WriteLine&#40;" "&#41;;
        TextWriter.Close&#40;&#41;; 
        window.location = "formtest.htm" // redirect to next task
     &#125;
     catch&#40;err&#41;//catch and redirect to previous page
     &#123;
      var strErr = '<b><font size=14>ERROR</font></b>';
      strErr += '</br></br><b>Error Number&#58;</b> ' + err.number;
      strErr += '</br><b>Description&#58;</b> ' + err.description;
      document.write&#40;strErr&#41;;
      document.write&#40;"</br></br> Sorry for the inconvenience please click <a href='WriteToText.htm'>here</a> to go back to the tasks"&#41;;
     &#125;
   &#125;
ευχαριστω και παλι

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Βοήθεια Πρόβλημα αποθήκευση δεδομένων χρησιμοποιώντας JS

Δημοσίευση από dva_dev » 08 Ιαν 2009 00:55

interfix έγραψε:

Κώδικας: Επιλογή όλων

function WriteToFile&#40;&#41;//function for writiing data into files
   &#123;
    ...
     var fso = new ActiveXObject&#40;"Scripting.FileSystemObject"&#41;;//the FileSystemObject object is created
     var TextWriter = fso.OpenTextFile&#40;"D&#58;\\Tests.txt", 8&#41;
    ...
   &#125;
Αυτό έχω την εντύπωση ότι θα παίξει μόνο σε windows - αν δεν είναι μπλοκαρισμένη η πρόσβαση στο δίσκο από τα security settings (το linux δεν υλοποιεί/υποστηρίζει com objects).
Οπότε ίσως είναι καλύτερα να φτιάχνεις μια σελίδα και να την εμφανίζεις στον browser του χρήστη, αφήνοντας τον να κάνει αυτός αποθήκευση όπου αυτός νομίζει, παρά να ψάχνεις πως θα δημιουργείς αρχεία σε κάθε λειτουργικό, αν σε αφήνει το επίπεδο ασφάλειας.

Άβαταρ μέλους
interfix
Δημοσιεύσεις: 14
Εγγραφή: 28 Φεβ 2007 07:57

Βοήθεια Πρόβλημα αποθήκευση δεδομένων χρησιμοποιώντας JS

Δημοσίευση από interfix » 08 Ιαν 2009 01:44

πάρα πολύ σωστά!! μόνο windows και μόνο Internet explorer. Firefox και στους υπόλοιπους browser δεν λειτουργεί. (εκτός αν μου διαφεύγει κάτι..)

είναι περίεργα τα πράγματα σε read/write files όταν δουλεύεις μόνο με JavaScript και στην περίπτωση μου και με ActiveX. έχεις απόλυτο δίκαιο πάντως

εγώ την χρησιμοποιώ για ερευνητικούς σκοπούς και μόνο για δική μου χρήση. Μου έδωσες ιδέα ομως θα το ψαξω αυτό που λες με το παράθυρο

thnx

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Βοήθεια Πρόβλημα αποθήκευση δεδομένων χρησιμοποιώντας JS

Δημοσίευση από soteres2002 » 08 Ιαν 2009 03:04

Google gears παιδες, cross-platform θέματα...

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες