Я пытаюсь преобразовать следующую строку james-and-the-giant-peach
в следующее: James and the Giant Peach
, поэтому в основном свопинг - для пробела и заглавные буквы первой буквы каждого слова, кроме слов типа и, или, или и т. Д. .VBScript - Заглавная буква первого слова каждого слова
Я пробовал несколько примеров и могу сделать простую замену, чтобы избавиться - для пробела, но я изо всех сил пытаюсь преобразовать каждую стартовую букву каждого слова в верхний регистр.
Вот код, используемый до этого, и код для вызова самой функции: strModpack = Replace(Modpack,"-"," ") strModpack = MakeUpperCase (strModpack)
Вот код, который я пытался начать с:
Function MakeUpperCase (inputText)
Dim arrWords, x, curWord
Dim leftPart, rightPart
arrWords = Split(inputText, " ")
For x=0 To UBound(arrWords)
curWord = arrWords(x)
If Len(curWord)>0 Then
leftPart = UCase(Left(curWord, 1))
If Len(curWord)>1 Then
rightPart = LCase(Right(curWord, Len(curWord) - 1))
Else
rightPart = ""
End If
curWord = leftPart & rightPart
End If
arrWords(x) = curWord
Next
MakeUpperCase = Join(arrWords, " ")
Erase arrWords
End Function
Мой выход в данный момент: James and the giant peach
РЕДАКТИРОВАТЬ: Код ниже, казалось, был настолько близок, но только одно из слов, которое ему нужно для строчной буквы.
Function MakeUpperCase(inputText)
Dim arrWords, x, curWord
Dim leftPart, rightPart
Exclude = "and,the"
arrExclude = Split (Exclude, ",")
arrWords = Split (inputText, " ")
For x=0 To UBound(arrWords)
curWord = arrWords(x)
If Len(curWord)>0 Then
leftPart = UCase(Left(curWord, 1))
If Len(curWord)>1 Then
rightPart = LCase(Right(curWord, Len(curWord) - 1))
If curWord = arrExclude(intWord) Then
leftPart = LCase(leftPart)
End if
Else
rightPart = ""
End If
curWord = leftPart & rightPart
End If
arrWords(x) = curWord
Next
MakeUpperCase = Join(arrWords, " ")
Erase arrWords
End Function
В настоящий момент на продажу представлены: Джеймс и гигантский персик (например).
Я использовал 'strModpack = Replace (Modpack," - "," ")' в другом месте кода, но затем понял, что 'strModpack = MakeUpperCase (Modpack)' был неправильным, он должен был быть 'strModpack = MakeUpperCase (strModpack) 'Теперь я исправил это и у вас есть правильный случай, теперь просто включите код, чтобы проверить слова NOT для использования. – Bolte
Если код в вашем вопросе не является тем, что вы используете, вы должны его отредактировать и занести в его примечание - попробовали ли вы код выше? – dbmitch
Использование приведенного выше кода дает мне ошибку для ожидаемого = в строке для 'Const EXCLUDE_WORDS As String =" the, a, and, or, was, is "' – Bolte