アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

VB2008でiniファイルの中身を書き換えるプログラムを作っているのですが

↓コード

    Dim LineLists As String
Dim FileObj As Object
Dim ListFile As String
Dim f As New Form2


If f.ShowDialog(Me) = DialogResult.OK Then

Vertext.Text = f.TextBox1.Text

End If

Try
FileObj = New IO.StreamReader(Foldername & "\CUS\Basic.ini", System.Text.Encoding.Default)


ListFile = FileObj.ReadToEnd()


FileObj.Close()


Catch ex As Exception

MessageBox.Show("指定のファイルが見つかりません", "エラー", _
MessageBoxButtons.OK, MessageBoxIcon.Error)

Exit Sub

End Try


LineLists = Split(ListFile, ControlChars.CrLf)


Dim ap As String

ap = LineLists(11).Substring(11, 3)

LineLists(11) = LineLists(11).Replace(ap, Vertext.Text)



LineLists(1) = LineLists(1).Replace("K ", "G")
LineLists(3) = LineLists(3).Replace("K", "G")
LineLists(3) = LineLists(3).Replace("C5", "45")
LineLists(69) = LineLists(69).Replace("Mos", "Gen")
LineLists(75) = LineLists(75).Replace("Mos", "Gen")
LineLists(81) = LineLists(81).Replace("Mos", "Gen")
LineLists(292) = LineLists(292).Replace("L.EXE", "DL.EXE")
LineLists(636) = LineLists(636).Replace("E_001=K_A.kmp", "E_001=KAA.kmp")



まずiniファイルを1行ずつ配列に格納し、それを行指定して文字列を置換するのですが、ちょうど最後の636のところでエラーが出ます。

最初は、テキストボックスに書き込み、置換する文字列を1行ずつ検索していって置換するコードでしたが、あまりに処理時間がかかるのでこちらの方法でやっているのですが・・・

上記の方法ではできましたが、こちらでやるとエラーが出てしまったので、解決策がわかりません。VB初めて2週間です。

どなたかよろしくおねがいします。

A 回答 (1件)

iniファイルが637行まで無いんじゃないかなぁ。


VBの場合配列の添え字は0~はじまるので(確か)
読み込んだレコード(行)の
1行目が、LineLists(0)
636行目が、LineLists(635)
になります。
iniファイルが636行だとすると、LineListsの配列の添え字は0~635ですよ。
全体的に1ずつずれていないでしょうか?
    • good
    • 0
この回答へのお礼

原因がわかりました。


デバックした後のiniファイルを見ると500行しかありませんでした。
どうやらLineListsの配列に500行分しかいれれないので、それ以降のものは入れれないみたいです・・・

違う方法でやってみます。ありがとうございました。

お礼日時:2008/07/04 11:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!