Page 1 of 1

อ่าน เขียน text file ด้วย java script

Posted: Sat Dec 22, 2018 2:17 pm
by mynumnum
ขอความอนุเคราะห์ท่านผู้รู้ทุกท่าน

ผมต้องการใช้ java script อ่าน / เขียน text ไฟล์ ผ่านหน้าเว็บเพจ
ผมได้ไปค้นหาวิธีการใช้ในอินเตอร์เน็ตแล้วที่
https://stackoverflow.com/questions/144 ... -text-file
โค้ดที่เจอเป็นแบบนี้

Code: Select all

  <html> <head>
    <script>
	var openFile = function(event) {
        	var input = event.target;
         	var reader = new FileReader();
        	reader.onload = function(){
          		var text = reader.result;
          		var node = document.getElementById('output');
          		node.innerText = text;
          		console.log(reader.result.substring(0, 200));
        		};
        	reader.readAsText(input.files[0]);
      		};
    </script>     </head>
    <body>
    <input id="demo" type='file' accept='text/plain' onchange='openFile(event)'><br>
    <div id='output'>     ...      </div>
    </body>
    </html>
หน้าตางานออกมาแบบนี้
21.jpg
ผมไม่ต้องการให้แสดงปุ่มคลิกเลือกไฟล์
แต่ผมต้องการระบุที่อยู่ไฟล์ ชื่อไฟล์ไว้ในส่วนโค้ดโปรแกรมเลยโดยไม่ต้องแสดงให้ผู้ดูเว็บเพจเห็น เช่น
MySourceFile = "./text.txt"; หรือ
MySourceFile = "c:/text.txt";
อยากทราบว่าควรปรับโค้ดตรงไหนอย่างไรบ้างครับ

Re: อ่าน เขียน text file ด้วย java script

Posted: Sat Dec 22, 2018 9:06 pm
by snasui
:D ใน Link ทีแนบมามี Code ลักษณะนี้อยู่แล้วด้วยครับ

Code: Select all

function readTextFile(file)
{
    var rawFile = new XMLHttpRequest();
    rawFile.open("GET", file, false);
    rawFile.onreadystatechange = function ()
    {
        if(rawFile.readyState === 4)
        {
            if(rawFile.status === 200 || rawFile.status == 0)
            {
                var allText = rawFile.responseText;
                alert(allText);
            }
        }
    }
    rawFile.send(null);
}
ไม่ทราบลองแล้วเป็นอย่างไร จะต้องมีส่วนที่เขียนส่งค่า Path ไปให้กับฟังก์ชั่น readTextFile ซึ่งเขียนไว้ในส่วนของ Body ก็ได้ครับ

Re: อ่าน เขียน text file ด้วย java script

Posted: Sun Dec 23, 2018 11:22 am
by mynumnum
ผมลองไปปรับโค้ดดูตามโค้ดด้านล่างนี้แล้ว ตามคำแนะนำ
(ไม่ทราบว่าผมเข้าใจถูกหรือเปล่านะครับ :D )
แต่ก็ไม่มีผล ไม่มีอะไรเกิดขึ้นเลย

Code: Select all

<html> 
<head>
<script>
	function readTextFile(file){
    	var rawFile = new XMLHttpRequest();
    	rawFile.open("GET", file, false);
    	rawFile.onreadystatechange = function () {
        	if(rawFile.readyState === 4) {
            	if(rawFile.status === 200 || rawFile.status == 0){
                	var allText = rawFile.responseText;
                	alert(allText);
                	document.getElementById('output').innerText = allText;
            	}
        	}
    	}
    	rawFile.send(null);
	}
</script>     
</head>
<body >
<input type="button" value="click" onclick="readTextFile('file:///E:/text.txt');">
<div id='output'>     ...      </div>
</body>
</html>
สิ่งที่ผมได้ทดลองทำไปมี
1. ทำตามโค้ดด้านบน
2. เปลี่ยน path แบบนี้
readTextFile('file:///C:/text.txt')
readTextFile('C:/text.txt')
readTextFile('./text.txt')
3. นำ Tag script มาวางในส่วน body แล้วทำการเปลี่ยน path ตามข้อ 2
ได้ผลเหมือนกันคือ ไม่มีผลอะไรเกิดขึ้นเลยครับ :lol:
รบกวนท่านช่วยดูให้อีกทีนะครับ

Re: อ่าน เขียน text file ด้วย java script

Posted: Sun Dec 23, 2018 12:29 pm
by snasui
:D ลองดูตาม Link นี้ครับ JavaScript Read Text File

ผมไม่ได้ทดลองว่าอันไหนใช้ได้หรือมไม่ได้เนื่องจากยังไม่สะดวกครับ

Re: อ่าน เขียน text file ด้วย java script

Posted: Sun Dec 23, 2018 9:44 pm
by mynumnum
ขอบคุณครับ อาจารย์
:D

Re: อ่าน เขียน text file ด้วย java script

Posted: Tue Dec 25, 2018 1:06 am
by mynumnum
ผมได้ไปทดลองโค้ดมาแล้วติดปัญหาตรง
บรรทัดนี้ ครับ " rawFile.onreadystatechange = function () {"
ก็เลยลองเปลี่ยนไปหาโค้ดอื่นมาดูบ้าง เป็นโค้ดใหม่ตามนี้ครับ

Code: Select all

<html> 
<head>
<script>
function ReadFromFile() {
	alert("1");
	var filename = "E:/text.txt";
	alert("2");
 	var fso, a, ForReading;
 	alert("3");
 	ForReading = 1;
 	alert("4");
 	fso = new ActiveXObject("Scripting.FileSystemObject");
 	alert("5");
 	file = fso.OpenTextFile(filename, ForReading, false);
	document.getElementById("result").innerHTML=file.readline()+" "; 
 	file.Close();
}
</script>     
</head>
<body >
<input type="button" value="click" onclick="ReadFromFile();">
<div id='output'>     ...      </div>
</body>
</html>
ผลปรากฏว่าติดปัญหาตรงบรรทัด
fso = new ActiveXObject("Scripting.FileSystemObject");
(เดาเอาเพราะ alert("5"); ไม่ทำงาน)
ไม่ทราบว่าพอจะทราบวิธีแก้ไขไหมครับ

Re: อ่าน เขียน text file ด้วย java script

Posted: Tue Dec 25, 2018 9:23 am
by snasui
:D เครื่องผมสามารถ Run ได้ตามปกติ แต่ต้องไป Allow ActiveX ตอน Run ครั้งแรกเสียก่อน จะมี Popup มาให้คลิกยอมรับการ Run ActiveX ครับ