Я не знаю, возможно ли это, но у меня есть такой код 4 или 5 раз в моей программе, но с разными переменными DOhav ***. Я пытаюсь сжать его до 1 функции с общими переменными DOhavART, DOhavART2, DOhavART3, чтобы покрыть переменные. Я передаю ему значения, необходимые для завершения функции. Но я могу получить только 1 переменную в ответ. Я искал в Интернете, пробуя различные вещи, такие как использование функции массива или построение структуры или построение большой строки из 3 и разбиение ее, когда она возвращается, но они не работают так, как я могу использовать. Как это работает, он смотрит на набор папок и видит, что он содержит правильные изображения, соответствующие системе (sysSEL sh), игре (Rname SH) и типу изображения (ArtTYPE)
For Each foundDirectory In My.Computer.FileSystem.GetDirectories((lbPath & "\Images\" & Mid(sysSELsh, 1, Len(sysSELsh) - 4) & "\Box - Front\"))
к концу у него должно быть 3 файла с полным путем для возврата (что он и делает), но я не могу получить 3 переменные, когда он возвращает, когда он возвращает, он проверяет, существует ли какой-либо из 3 файлов, тогда добавить его в список с да или нет. Должно быть 3 возврата, так как именно так можно назвать или структурировать файл разными способами. У меня он работает в 5 различных разделах кода, но с отдельными переменными и всем остальным в коде одинаково. На самом деле, есть 20 папок для поиска всех различных типов изображений, так что сжатие его в функцию - моя главная цель .
Public Function FINDArtTYPE(ByVal sysSELsh As String, ByVal RnameSH As String, ByVal ArtTYPE As String) As String
Dim extFIND = RnameSH.Substring(RnameSH.LastIndexOf(".") + 1)
Dim RepSTR As String = ""
Dim DOhavART As String = ""
Dim DOhavART2 As String = ""
Dim DOhavART3 As String = ""
If Len(extFIND) = 2 Then
DOhavART = lbPath & "\Images\" & Mid(sysSELsh, 1, Len(sysSELsh) - 4) & ArtTYPE & Mid(RnameSH, 1, Len(RnameSH) - 3) & ".PNG"
ElseIf Len(extFIND) = 3 Then
DOhavART = lbPath & "\Images\" & Mid(sysSELsh, 1, Len(sysSELsh) - 4) & ArtTYPE & Mid(RnameSH, 1, Len(RnameSH) - 4) & ".PNG"
End If
If FileExists(DOhavART) = False Then
DOhavART2 = lbPath & "\Images\" & Mid(sysSELsh, 1, Len(sysSELsh) - 4) & ArtTYPE & DBid & "-01.PNG"
If InStr(3, DOhavART2, ":") <> 0 Then RepSTR = Replace(DOhavART2, ": ", "_ ") : If RepSTR <> "" Then DOhavART2 = RepSTR : RepSTR = ""
If InStr(3, DOhavART2, "'") <> 0 Then RepSTR = Replace(DOhavART2, "'", "_") : If RepSTR <> "" Then DOhavART2 = RepSTR : RepSTR = ""
If InStr(3, DOhavART2, "/") <> 0 Then RepSTR = Replace(DOhavART2, "/", "_") : If RepSTR <> "" Then DOhavART2 = RepSTR : RepSTR = ""
If InStr(3, DOhavART2, " / ") <> 0 Then RepSTR = Replace(DOhavART2, " / ", " _ ") : If RepSTR <> "" Then DOhavART2 = RepSTR : RepSTR = ""
End If
If FileExists(DOhavART) = False And FileExists(DOhavART2) = False Then
For Each foundDirectory In My.Computer.FileSystem.GetDirectories((lbPath & "\Images\" & Mid(sysSELsh, 1, Len(sysSELsh) - 4) & ArtTYPE))
Dim FileCount As Integer = Directory.GetFiles(foundDirectory & "\").Length
If FileCount > 0 Then
If Len(extFIND) = 2 Then
DOhavART = foundDirectory & "\" & Mid(RnameSH, 1, Len(RnameSH) - 3) & ".PNG"
If FileExists(DOhavART) = True Then DOhavART3 = DOhavART
ElseIf Len(extFIND) = 3 Then
DOhavART = foundDirectory & "\" & Mid(RnameSH, 1, Len(RnameSH) - 4) & ".PNG"
If FileExists(DOhavART) = True Then DOhavART3 = DOhavART
End If
If FileExists(DOhavART) = False And FileExists(DOhavART3) = False Then
DOhavART2 = (foundDirectory & "\" & DBid & "-01.PNG")
If InStr(3, DOhavART2, ":") <> 0 Then RepSTR = Replace(DOhavART2, ": ", "_ ") : If RepSTR <> "" Then DOhavART2 = RepSTR : RepSTR = ""
If InStr(3, DOhavART2, "'") <> 0 Then RepSTR = Replace(DOhavART2, "'", "_") : If RepSTR <> "" Then DOhavART2 = RepSTR : RepSTR = ""
If InStr(3, DOhavART2, "/") <> 0 Then RepSTR = Replace(DOhavART2, "/", "_") : If RepSTR <> "" Then DOhavART2 = RepSTR : RepSTR = ""
If InStr(3, DOhavART2, " / ") <> 0 Then RepSTR = Replace(DOhavART2, " / ", " _ ") : If RepSTR <> "" Then DOhavART2 = RepSTR : RepSTR = ""
If FileExists(DOhavART2) = True Then DOhavART3 = DOhavART2
End If
End If
Next
End If
Return DOhavART
Return DOhavART2
Return DOhavART3
End Function
Спасибо за любую помощь, которую вы, ребята, можете оказать с этим.