글
삽질 기록.
내가 갖고 있는 것
labels() : 몇가지 이름이 들어있는 배열
config.txt : labels()가 저장되는 파일
원하는 것
config.txt에 labels()의 내용을 쓰고 싶은데, 이미 있는 내용이라면 그냥 놔두고 없으면 끝에다 추가한다
현재 구현된 상태
readline(config.txt)으로 불러오고
적당한 비교 구문으로 찾아본 후
없는 애들만 골라서
writeline(config.txt)으로 저장
그런데 오류 발생. IOexception 에러. 분명히 readline 후에 dispose하고 close했는데도 다른 프로세스가 그 파일을 붙들고 있다면서...
소스 코드
위에서 파랗게 칠해둔 부분이 오류임.
해결된줄 알았는데 아직 해결이 안됐다. 어디의 무엇이 문제일까. -_-;
해결 방법
C:\를 E:\로 바꾸었음
Writeline을 WriteAllLine 으로 바꾸었음
원인
윈도 Vista에서 C:\는 보안상 접근을 허락하지 않는고로, 이래저래 괴로운 일이 발생함.
모름. 도대체...
결론
윈도 Vista가 쓰레기.
어쨌든 윈도 Vista는 쓰레기.
잠재적 문제점
E:\가 없는 컴퓨터에서 작동시킬 때 100% 확률로 오류 발생.
이 프로그램을 작동시킬 컴퓨터는 윈도 XP가 설치되어 있으므로 C:\로 하더라도 문제가 없을 것임.
개발은 E:\로 해놓고 배포는 C:\로 해야 하는 딜레마 상황.
잠재적이라서 모름.
디버깅하는데 걸린 시간
2 업무일 + 야근 8시간
잠재적 결론
빌어먹을.
내가 갖고 있는 것
labels() : 몇가지 이름이 들어있는 배열
config.txt : labels()가 저장되는 파일
원하는 것
config.txt에 labels()의 내용을 쓰고 싶은데, 이미 있는 내용이라면 그냥 놔두고 없으면 끝에다 추가한다
현재 구현된 상태
readline(config.txt)으로 불러오고
적당한 비교 구문으로 찾아본 후
없는 애들만 골라서
writeline(config.txt)으로 저장
그런데 오류 발생. IOexception 에러. 분명히 readline 후에 dispose하고 close했는데도 다른 프로세스가 그 파일을 붙들고 있다면서...
소스 코드
'이 코드는 snowall이 직접 작성한 코드이다.
'이 코드는 Public Domain License를 적용받는다.
Private Sub saveConfig()
Dim j As Integer
Dim i As Integer
Dim tmp As System.IO.FileStream
If Not (System.IO.File.Exists("C:\TOFconfig.txt")) Then
tmp = System.IO.File.Create("C:\TOFconfig.txt")
tmp.Close()
tmp.Dispose()
End If
MsgBox(System.IO.File.ReadAllLines("C:\TOFconfig.txt").Length)
Dim labels(0) As String
If System.IO.File.ReadAllLines("C:\TOFconfig.txt").Length Then
ReDim Preserve labels(System.IO.File.ReadAllLines("C:\TOFconfig.txt").Length)
For i = 0 To labels.Length - 1
labels(i) = System.IO.File.ReadAllLines("C:\TOFconfig.txt")(i)
Next
End If
Dim flag As Boolean = False
MsgBox(labels(labels.Length - 1))
For j = 0 To frmMainWindow.numberOfData - 1
For i = 0 To labels.Length - 1
If Not (labels(i) Is Nothing) Then
If labels(i).StartsWith(frmMainWindow.clsSignalData(j).label) Then
labels(i) = frmMainWindow.clsSignalData(j).label & frmMainWindow.clsSignalData(j).intChannel
flag = True
End If
End If
Next
If Not (flag) Then
ReDim Preserve labels(labels.Length)
labels(labels.Length - 1) = frmMainWindow.clsSignalData(j).label & frmMainWindow.clsSignalData(j).intChannel
End If
flag = False
Next
Dim objfilew As New System.IO.StreamWriter("C:\TOFconfig.txt")
For i = 0 To labels.Length - 1
objfilew.WriteLine(labels(i))
Next
objfilew.Close()
objfilew.Dispose()
End Sub
'이 코드는 Public Domain License를 적용받는다.
Private Sub saveConfig()
Dim j As Integer
Dim i As Integer
Dim tmp As System.IO.FileStream
If Not (System.IO.File.Exists("C:\TOFconfig.txt")) Then
tmp = System.IO.File.Create("C:\TOFconfig.txt")
tmp.Close()
tmp.Dispose()
End If
MsgBox(System.IO.File.ReadAllLines("C:\TOFconfig.txt").Length)
Dim labels(0) As String
If System.IO.File.ReadAllLines("C:\TOFconfig.txt").Length Then
ReDim Preserve labels(System.IO.File.ReadAllLines("C:\TOFconfig.txt").Length)
For i = 0 To labels.Length - 1
labels(i) = System.IO.File.ReadAllLines("C:\TOFconfig.txt")(i)
Next
End If
Dim flag As Boolean = False
MsgBox(labels(labels.Length - 1))
For j = 0 To frmMainWindow.numberOfData - 1
For i = 0 To labels.Length - 1
If Not (labels(i) Is Nothing) Then
If labels(i).StartsWith(frmMainWindow.clsSignalData(j).label) Then
labels(i) = frmMainWindow.clsSignalData(j).label & frmMainWindow.clsSignalData(j).intChannel
flag = True
End If
End If
Next
If Not (flag) Then
ReDim Preserve labels(labels.Length)
labels(labels.Length - 1) = frmMainWindow.clsSignalData(j).label & frmMainWindow.clsSignalData(j).intChannel
End If
flag = False
Next
Dim objfilew As New System.IO.StreamWriter("C:\TOFconfig.txt")
For i = 0 To labels.Length - 1
objfilew.WriteLine(labels(i))
Next
objfilew.Close()
objfilew.Dispose()
End Sub
위에서 파랗게 칠해둔 부분이 오류임.
해결된줄 알았는데 아직 해결이 안됐다. 어디의 무엇이 문제일까. -_-;
해결 방법
C:\를 E:\로 바꾸었음
Writeline을 WriteAllLine 으로 바꾸었음
원인
윈도 Vista에서 C:\는 보안상 접근을 허락하지 않는고로, 이래저래 괴로운 일이 발생함.
모름. 도대체...
결론
윈도 Vista가 쓰레기.
어쨌든 윈도 Vista는 쓰레기.
잠재적 문제점
E:\가 없는 컴퓨터에서 작동시킬 때 100% 확률로 오류 발생.
이 프로그램을 작동시킬 컴퓨터는 윈도 XP가 설치되어 있으므로 C:\로 하더라도 문제가 없을 것임.
개발은 E:\로 해놓고 배포는 C:\로 해야 하는 딜레마 상황.
잠재적이라서 모름.
디버깅하는데 걸린 시간
2 업무일 + 야근 8시간
잠재적 결론
빌어먹을.
RECENT COMMENT