2013-08-16 5 views
1

나는 시각적 인 기초 (그리고 일반적으로 코딩)에 꽤 익숙하다. 그래서 나는 정말로 간단한 실수를 저에게 알렸다.
지금 당장은 내 vb.net 코드에 이상한 문제가 발생합니다. filestream은 파일을 올바르게 열고 읽을 수 있지만 이상한 점은 코드가 파일의 시작 부분에서 여러 줄을 읽을 수 있지만 메모장에서 파일을 수동으로 열면 필자가 아니라는 것입니다. . ReadLine을 사용하여 텍스트가 어디에 있습니까?

Dim fs, f, s 'filesystemobject, file, stream. 
    fs = CreateObject("Scripting.FileSystemObject") 
    f = fs.GetFile(CurrDataPath) ' This change made to ensure the correct file is opened 
    s = f.OpenAsTextStream(1, 0) ' 1 = ForReading, 0 = as ASCII (which i think is right?) 
    Dim param(14) As String 
    Dim line As String 
    line = s.ReadLine() 
    While i <= 14 
     i += 1 
     MessageBox.Show(line) 
     line = s.ReadLine() 
    End While 

이 (내가 배열이 나쁜 생각입니다 읽었습니다하지만 편리 봤는데 내가 어쨌든 그들을 사용하고, 그래서 나에게 어떤 문제가 발생하지 않았습니다.)
은 무엇 이상해 : 여기 코드는 이 코드를 실행하면 메시지 상자에 내가보고 싶은 정보가 표시됩니다. 이는 전혀 나쁘지 않습니다. 내가 원하는 정보는 다음과 같습니다

BEGINPARAM 
parameter1, 0 
parameter2, 7.5 
ENDPARAM 

편집이 : Path.GetFullPath(DFile)를 사용 후, 같은 이름 DFile 서로 다른 디렉토리에이 개 파일이 사실을 발견했습니다. 메모장에서 열어 본 파일은 코드가 읽는 파일이 VB 프로젝트의 폴더에 저장되는 동안 저장 될 것으로 예상되는 디렉터리에 저장되었습니다.
일단 예상 경로가 포함 된 CurrDataPath에 의존하도록 코드를 변경하면 코드가 메모장에서 수행 한 것과 정확히 일치합니다.
메모장에서 단어 줄 바꿈을 했으므로 그게 문제가 아니라는 것을 알고 있습니다. 그러나 메모장을 얻는 방법을 살펴 보겠습니다. ++.
DFile이라는 파일은 C++ 프로그램에서 만들어져 파일의 일부가 나머지 폴더와 다른 폴더에 기록되는 이유를 찾아냅니다.

분명히 나는 ​​중요한 것을 놓치고 있으며, 누군가 도움을 줄 수 있다면 그것은 좋을 것입니다.
* 참고 : 이것은 vb6 마이그레이션 프로젝트이므로 누구나 요청하면 이전 코드를 제공 할 수 있습니다.

+1

있습니까? – Steve

+0

우와. 그러면 내 질문이 바뀝니다. 누락 된 텍스트가 다른 디렉토리에 저장됩니다 (동일한 이름 사용). 나는 이것을 소화하려고 노력할 것이며, 또 다른 문제가 생기면 논평하거나 새로운 질문을 할 것이다. 정말 고맙습니다! –

+0

vb.net의 버전은 무엇입니까? –

답변

1

VB.Net의 최신 버전을 가정하면, 그것을 쓸 수있는 현대적인 방법은 다음과 같이이다 : 당신은 당신이 같은 파일을 읽고 있는지

For Each line As String In File.ReadLines(CurrDataPath).Take(14) 
    MessageBox.Show(line) 
Next 
0

나는 당신이 말하는 것에 100 % 명확하지 않습니다. 이 코드에는 파일에 출력하는 내용이 없으므로 위의 3 행에서 "DFile"이 참조하는 파일을 열 때 해당 파일에는 "parameter1, 0"및 "parameter2, 7.5"그것에?

기술적으로 불가능하다는 것을 알고 있으므로 위 질문에 대한 답변을 확인하고 스크립트가 열려있을 때 메모장에 실제로 같은 파일을 여는 지 확인하십시오. 두 번째로해야 할 일은 메모장에서 단어 줄 바꿈을 사용하거나 메모장을 다운로드하는 것입니다. 메모장에있는 텍스트 편집기를 사용하면 Windows 스타일을 사용하지 않기 때문에 데이터가 실제로 누락되어 화면에 표시되지 않도록 할 수 있습니다. 라인 엔딩.

+0

정확하게. 파일에 내가 예상했던 라인이 포함되어 있지 않습니다. 나는 스티브의 충고에 따라 발견 한 것으로 질문을 업데이트했지만 이제는 C++ 질문에 더 가까워진 것 같다. 나는 또 다른 문제를 물어볼 것입니다. –

관련 문제