#vb.net #carriage-return
#vb.net #возврат каретки
Вопрос:
Я пытаюсь выполнить печать в текстовый файл, но я пытаюсь напечатать два моих вывода оператора if в одной строке. На данный момент каждый печатает в своей отдельной строке, и мне интересно, как я могу заставить их оставаться на одной и той же. Я попытался выполнить замену (vbCrLf, «»), но это не сработало или, возможно, я не поместил его в нужное место.
If (atr.Value = "Cat") Then
file.WriteLine(String.Format("{0} - {1} ", attribute.Value, atrue.Value))
End If
If (atr.Value = "Money") Then
file.WriteLine(String.Format("{0} - {1} ", attribute.Value, atrue.Value))
End If
Вывод:
Cat - 19
Money - H2E
Желаемый результат:
Cat - 19 Money - H2E
Комментарии:
1. Изменить
file.WriteLine
наfile.Write
.WriteLine
означает запись строки , что означает, что она заканчивается на CR / LF.2. Кроме того, вы должны использовать
ElseIf
здесь, чтобы избежать избыточных проверок:If atr.Value = "Cat" Then ... ElseIf atr.Value = "Money" Then ... End If
. Или, если вам нужно проверить более двух значений, вместо этого вы можете использоватьSelect Case
оператор .3. На самом деле, вам, вероятно, следует просто использовать,
If atr.Value = "Cat" OrElse atr.Value = "Money" Then ...
поскольку вы выполняете один и тот же код в обоих ваших текущихIf
операторах.4. Будет выполняться только один из ваших операторов If, потому что atr.Value не может быть «Cat» и «Money» одновременно. Ваш вывод невозможен.
Ответ №1:
Здесь все немного запутано
If (atr.Value = "Cat") Then
file.WriteLine(String.Format("{0} - {1} ", attribute.Value, atrue.Value))
End If
If (atr.Value = "Money") Then
file.WriteLine(String.Format("{0} - {1} ", attribute.Value, atrue.Value))
End If
У вас есть 3 переменные:
atr
atrue
attribute
Я ожидаю, что один из них является избыточным / повторяющимся или опечаткой.
Я также предполагаю, что это выполняется в цикле, где значения переменных меняются в каждом цикле, и что вы хотите переключиться на следующую строку только после того, как вы написали «Деньги»
(Some loop)
'always write the value
file.Write($"{attribute.Value} - {atrue.Value} "))
If (atr.Value = "Money") Then file.WriteLine() 'only write a newline if we wrote Money
Комментарии:
1. Да, я только что добавил часть своего кода, чтобы я мог просто узнать, как остановить возврат каретки между двумя операторами if, не нужно фокусироваться на переменных!
2. Возможно, тогда ответ, который вы ищете, так же прост, как использование
Write
вместоWriteLine
then