2014-09-29 2 views
0

웹 검색을 통해 몇 시간 동안이 작업을 수행하려했지만 필요한 결과를 얻지 못했습니다..txt 파일의 내용을 읽고 수정 한 다음 웹 브라우저의 로컬 호스트에 html 페이지로 표시하는 방법은 무엇입니까?

현재 .txt 파일을 열고 cmd 창에서 내용과 console.log()를 읽습니다. 이 수정 된 내용을 로컬 호스트의 HTML 페이지로 출력하는 방법을 알아야합니다. 로컬 호스트 주소 (127.0.0.1:xxxx)에 서버를 만들고 하이퍼 텍스트 링크가있는 웹 페이지를 만듭니다. 사용자 serverStaticFile()은 해당 페이지의 html 파일에 수정 된 버전의 .txt 파일을 표시합니다.

수정 된 버전의 .txt 파일을 html 페이지에서 액세스 할 수 있지만 원본 .txt 파일의 마지막 줄만 저장되는 다른 .txt 파일에 저장하려고했습니다. lineReader.eachline()을 사용하기 때문에 선의 일부분을 다른 문자열에 넣은 다음 그 문자열을 해당 행의 완성 된 제품으로 출력해야하기 때문에 lineReader.eachline()을 사용합니다.

lineReader.eachLine(// For every line in the song 
'original.txt', 
function(line, last) { 
    var string1 = ""; 
    var string2 = ""; 
      var string3 = ""; 
      var string4 = ""; 
    var stringLine = line; 
    var skipSpaces = 0; 
    for (var i=0; i<stringLine.length; i++){ // For every character in the line 
     if (stringLine[i] == "["){ 
      // If the character is a '[', scan the line until ']' is found. 
      // Everything in between is for string1 
      var c = ""; 
      var x = i+1; 
      var chordString = ""; 
      while (c !== "]") { 
       chordString += stringLine[x]; 
       x++; 
       c = stringLine[x]; 
      } 
      string1 += chordString; 
      skipSpaces = chordString.length; 
      i = x; 
     } else { 
      // If the character isn't a bracket, add that character to the string2 
      if (skipSpaces > 0){ 
       // Pad the top line with spaces, unless they should be skipped due to a chord having been added. 
       skipSpaces--; 
      } else { 
       string1 += " "; 
      } 
      string2 += stringLine[i]; 
     } 
    } 
    console.log(string1); 
    console.log(string2); 
      string3 = string1+string2; 
      string4 += string3; 

      fs.writeFile("chordpro.txt", string4, function(err) { 
      if(err) { 
       console.log(err); 
       } else { 
      console.log(""); 
      } 
     }); 


    if (last) { 
     return false; // stop reading 
    } 
}); 

string1과 string2는 루프에서 읽는 현재 행의 수정 된 내용입니다. 수정 된 줄을 하나의 전체 문자열 string3에 저장하고 이전 수정 된 줄을 덮어 쓰지 않는 다른 문자열에 모든 줄을 넣으려고합니다. 이 문제는 원래 .txt 파일의 마지막 줄만 modified.txt 파일에 저장한다는 것입니다. 이 수정 된 txt 파일을 html 페이지에 업로드하고 싶었습니다.

누군가가 안내를 해 줄 수 있습니까?

+0

실제로이 질문에 답하기에는 충분한 코드가 없습니다. 내 생각 엔 원래 파일의 현재 줄을 string4에 추가하기 만하면 새 파일에 쓸 때 마지막 줄만있게됩니다. –

+0

@DeepThought 내 질문을 편집했습니다. 지금은 분명해야합니다. – Roman

답변

0

"chordpro.txt"파일에있는 파일의 마지막 줄만있는 이유는 입력 파일의 각 줄에 대해 완료했을 때 해당 줄을 출력 파일에 쓰려고하기 때문입니다. writeFile()을 사용하면 현재 파일에있는 내용을 덮어 씁니다. 원하는 것은 appendFile()을 대신 사용하는 것이다.

fs.appendfile("chordpro.txt", string4, function(err) { 
    //.. 
} 
+0

덮어 쓰지 않도록하려면 어떻게해야합니까? – Roman

+0

내 대답처럼 appendFile을 사용합니다. –

관련 문제