- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB 2008: Do Whie...Loop文について)
VB 2008: Do While...Loop文について
このQ&Aのポイント
- VB 2008のDo While...Loop文についての質問です。
- 質問者は、特定のファイルから文字を取得するための関数について説明しています。
- 質問者が悩んでいるのは、Do While...Loop文内のIf Else End Ifの扱いについてで、助言を求めています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Do While (i + j <= l) And (i <= p) ... Loop ってことですか?
その他の回答 (1)
- D-Matsu
- ベストアンサー率45% (1080/2394)
回答No.2
あ、もひとつ。 > c = "" はFileGet()の前に移動してください。
質問者
お礼
Function FileGetChar4(ByVal f As String, ByVal p As Integer) As String Dim i As Integer = 1 Dim j As Integer = 0 Dim l As Integer Dim n As Integer = FreeFile() Dim c As Char If File.Exists(f) Then FileOpen(n, f, OpenMode.Random, OpenAccess.Read, , 1) l = FileLen(f) Do While (i + j <= l) And (i <= p) FileGet(n, c, i + j) j = j - (Math.Abs(Asc(c)) > 255) i = i + 1 Loop FileClose(n) End If Return IIf(p > i, "", c) End Function Do...Loop文の条件に問題があるとばっかり思い込んでいました。 要は、Return文で工夫すべき問題でした。 ともかく、回答を読んで再度テストする中で解決しました。 ありがとうございました。 これで、3、4時間も悪戦苦闘するとは我ながら情けない限りです。
お礼
Function FileGetChar4(ByVal f As String, ByVal p As Integer) As String Dim i As Integer = 1 Dim j As Integer = 0 Dim l As Integer Dim n As Integer = FreeFile() Dim c As Char If File.Exists(f) Then FileOpen(n, f, OpenMode.Random, OpenAccess.Read, , 1) l = FileLen(f) Do While (i + j <= l) And (i <= p) c = "" FileGet(n, c, i + j) j = j - (Math.Abs(Asc(c)) > 255) i = i + 1 Loop FileClose(n) End If Return c End Function これで正常に動作しないので困っています。