|
分類:[.NET 全般]
関数を使っているのですが、戻ってくるものがNothingになってしまいます。
どうすれば連携するプロシージャで変換された名前が出てくるようになりますでしょうか。
開発環境はVS2005です。VBです。アドバイスお願いします。
Private Function namechanger(ByVal prename As String) As Object
Dim name1 As Object
If name1 = "" Then
name1 = "a"
Else : name1 = Trim(name1)
End If
Dim name_changer(700) As String '名前を変換する配列
Dim t2 As Double
Dim iFileNo2 As Long
Dim changed_name() As Object
Dim ccc As String
Dim ddd As Object
iFileNo2 = FreeFile()
FileOpen(iFileNo2, "基礎データ\名前変換.res", OpenMode.Input) '名前変換ファイルを開く
For t2 = 0 To 700
If EOF(iFileNo2) Then Exit For '最後まで読み込むとループを抜ける
name_changer(t2) = LineInput(iFileNo2) '一行づつ読み込んで配列に収める
Next t2
FileClose(iFileNo2) 'ファイルを閉じる
changed_name = Filter(name_changer, prename, True) 'ファイルの中から意図する名前を探し出す
Dim i As Long
i = UBound(changed_name) 'iは探し出されたファイルの最大数
If i >= 0 Then '意図するデータが存在すれば右3文字を抜き出す
ccc = Microsoft.VisualBasic.Right(changed_name(i), 3)
ElseIf i = -1 Then '意図するデータがなければ返す値はaとする
ccc = "a"
End If
ddd = Trim(ccc) '意図するデータから余分なスペースを剥ぎ取る
Stop
End Function
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim aaa As String
With Clipboard.GetDataObject 'クリップボードからデータを取得
If .GetDataPresent(DataFormats.Text) Then
aaa = .GetData(DataFormats.Text)
End If
End With
Dim fileno = FreeFile()
FileOpen(fileno, "基礎データ\データ1.res", OpenMode.Output)
Write(fileno, aaa)
FileClose(fileno)
FileOpen(fileno, "基礎データ\データ1.res", OpenMode.Input)
Dim race_now(100) As String
Dim t2 As Long
For t2 = 0 To 100
If EOF(fileno) Then Exit For 'データの最後まで読み込む
race_now(t2) = LineInput(fileno) '一行づつ処理
Next t2
Dim time1 As Object
Dim time2 As Object
Dim time3 As Object
Dim time4 As Object
Dim time5 As Object
Dim time6 As Object
Dim time7 As Object
Dim time8 As Object
time1 = race_now(5)
time2 = race_now(12)
time3 = race_now(19)
time4 = race_now(26)
time5 = race_now(33)
time6 = race_now(40)
time7 = race_now(47)
time8 = race_now(54)
Dim changedname1 As Object
Dim changedname2 As Object
Dim changedname3 As Object
Dim changedname4 As Object
Dim changedname5 As Object
Dim changedname6 As Object
Dim changedname7 As Object
Dim changedname8 As Object
changedname1 = namechanger(race_now(1))
changedname2 = namechanger(race_now(8))
changedname3 = namechanger(race_now(15))
changedname4 = namechanger(race_now(22))
changedname5 = namechanger(race_now(29))
changedname6 = namechanger(race_now(36))
changedname7 = namechanger(race_now(43))
changedname8 = namechanger(race_now(50)) ←ここで戻ってくる値がNothingになってしまいます。
|