Вход

Просмотр полной версии : System.ArgumentOutOfRangeException: Length cannot be less than zero. (Parameter 'leng



Ol83
29.04.2024, 18:44
При добавление комментария в ST возникает ошибка
75471

Она возникает если набрать (* и потом нажать enter.
Ниже то что скопировалось в буфер ошибки
2.6.348.0
System.ArgumentOutOfRangeException: Length cannot be less than zero. (Parameter 'length')
at System.String.Substring(Int32 startIndex, Int32 length)
at StParser.Lexer.CreateMultilineCommentToken(String input, TokenPosition& tokenPosition)
at StParser.Lexer.AnalyzeInput(String input, CancellationToken cancellationToken)
at Owen.STEditor.Editor.STIndentationStrategy.IndentL ine(TextDocument document, DocumentLine line)
at ICSharpCode.AvalonEdit.Editing.TextArea.ReplaceSel ectionWithNewLine()
at ICSharpCode.AvalonEdit.Editing.TextArea.PerformTex tInput(TextCompositionEventArgs e)
at ICSharpCode.AvalonEdit.Editing.EditingCommandHandl er.OnEnter(Object target, ExecutedRoutedEventArgs args)
at System.Windows.Input.CommandBinding.OnExecuted(Obj ect sender, ExecutedRoutedEventArgs e)
at System.Windows.Input.CommandManager.FindCommandBin ding(CommandBindingCollection commandBindings, Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
at System.Windows.Input.CommandManager.FindCommandBin ding(Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
at System.Windows.Input.CommandManager.OnExecuted(Obj ect sender, ExecutedRoutedEventArgs e)
at System.Windows.RoutedEventArgs.InvokeHandler(Deleg ate handler, Object target)
at System.Windows.EventRoute.InvokeHandlersImpl(Objec t source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(Dependency Object sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedE ventArgs args)
at System.Windows.Input.RoutedCommand.ExecuteImpl(Obj ect parameter, IInputElement target, Boolean userInitiated)
at System.Windows.Input.CommandManager.TranslateInput (IInputElement targetElement, InputEventArgs inputEventArgs)
at System.Windows.UIElement.OnKeyDownThunk(Object sender, KeyEventArgs e)
at System.Windows.RoutedEventArgs.InvokeHandler(Deleg ate handler, Object target)
at System.Windows.EventRoute.InvokeHandlersImpl(Objec t source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(Dependency Object sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedE ventArgs args)
at System.Windows.Input.InputManager.ProcessStagingAr ea()
at System.Windows.Input.InputProviderSite.ReportInput (InputReport inputReport)
at System.Windows.Interop.HwndKeyboardInputProvider.P rocessKeyAction(MSG& msg, Boolean& handled)
at System.Windows.Interop.HwndSource.CriticalTranslat eAccelerator(MSG& msg, ModifierKeys modifiers)
at System.Windows.Forms.Integration.ElementHost.Proce ssCmdKey(Message& msg, Keys keyData)
at System.Windows.Forms.Control.PreProcessMessage(Mes sage& msg)
at System.Windows.Forms.Control.PreProcessControlMess ageInternal(Control target, Message& msg)
at System.Windows.Forms.Application.ThreadContext.Pre TranslateMessage(MSG& msg)

kondor3000
29.04.2024, 19:15
При добавление комментария в ST возникает ошибка
Она возникает если набрать (* и потом нажать enter.
Ниже то что скопировалось в буфер ошибки
2.6.348.0

Правильно появляется, при чём на других версиях тоже. Вы не закрыли комментарий набрав *) и нажали Ввод, поэтому и ошибка.

Даже в Codesys 2.3, если открыть комментарий (* и не закрыть, будет ошибка при компиляции.

МихаилГл
30.04.2024, 06:00
Правильно появляется, при чём на других версиях тоже. Вы не закрыли комментарий набрав *) и нажали Ввод, поэтому и ошибка.

Даже в Codesys 2.3, если открыть комментарий (* и не закрыть, будет ошибка при компиляции.

Нет, обождите...
Это же многострочный комментарий, и он закрыт в последней строке.
Возможно программисты не предусмотрели чтоб (* стоял в пустой строке...

melky
30.04.2024, 09:19
комментарий не может быть длиной 0.

з.ы. такая ошибка должна обрабатываться программой и выдавать соответствующее предупреждение и методы решения, а не валить Исключением.

вероятно после (* надо писать текст начинать.

capzap
30.04.2024, 10:19
просто интересно, а кроме окна с предупреждением о нулевой длине, кто то видит ошибку в соответствующем поле, ведь не зря же ТС привел вырезку только окна кода, без окна ошибок

МихаилГл
30.04.2024, 14:38
просто интересно, а кроме окна с предупреждением о нулевой длине, кто то видит ошибку в соответствующем поле, ведь не зря же ТС привел вырезку только окна кода, без окна ошибок

Ну мы доверяем ТС, он вроде указал причину. Нам что броситься смотреть код...

capzap
30.04.2024, 15:14
Нам что броситься смотреть код...
ну собственно чтоб вести дискуссию по теме, да, надо перепроверять, чтоб самому убедиться и делать соответствующие выводы, а эти вероятно, возможно, вроде не дают понимания что делать дальше вопрошающему с оппонентами. Проблема тут обычная, это в Substring один из аргументов равен -1, а не пустая строка после (*

МихаилГл
30.04.2024, 15:21
ну собственно чтоб вести дискуссию по теме, да, надо перепроверять, чтоб самому убедиться и делать соответствующие выводы, а эти вероятно, возможно, вроде не дают понимания что делать дальше вопрошающему с оппонентами. Проблема тут обычная, это в Substring один из аргументов равен -1, а не пустая строка после (*

Так у вас там пробелы, вы попробуйте сразу после (*...

capzap
30.04.2024, 15:23
Так у вас там пробелы, вы попробуйте сразу после (*...

я конечно же в курсе

МихаилГл
30.04.2024, 15:27
я конечно же в курсе
Ну а зачем тогда вы это начали? Я проверил, всё так как сказал ТС. Следовательно это косяк среды.

capzap
30.04.2024, 15:32
Ну а зачем тогда вы это начали? Я проверил, всё так как сказал ТС. Следовательно это косяк среды.

и что же я начал?

МихаилГл
30.04.2024, 15:37
просто интересно, а кроме окна с предупреждением о нулевой длине, кто то видит ошибку в соответствующем поле, ведь не зря же ТС привел вырезку только окна кода, без окна ошибок


и что же я начал?

Как понимать первое сообщение? Вот я вижу его так: в коде ТС ошибка, а вы её не заметили.

Просто никак иначе это не интерпретировать

capzap
30.04.2024, 15:44
Как понимать первое сообщение? Вот я вижу его так: в коде ТС ошибка, а вы её не заметили.

Просто никак иначе это не интерпретировать

скрином покажите, что кода после нажатия ввода сразу после звездочки или при наличии одного символа после звездочки, появляется всплывающее окно, а в окне ошибок как минимум горит красный кружок с количеством ошибок. Докажите что я не заметил. Вас ведь тоже не понять то Вы верите на слово и не проверяете, то Вы проверяете, в разных постах по разному

Нам что броситься смотреть код...

Я проверил, всё так как сказал ТС.

МихаилГл
30.04.2024, 16:04
У меня телефон. Пришлось после ваших сообщений идти на рабочий комп по удаленке. Да, я проверил после ваших сообщений. Какой смысл мне не доверять ТС, если он написал, что всплывающее окно сообщения об ошибке появляется послеинажатия ввода после (*.
Сразу предположил, ошибка среды, которая не допускает отсутствие символов после (*.
А вы ввели пробелов и на те, ТС врёт. Это вы реализовали не эту ситуацию.

Dimensy
30.04.2024, 16:33
Ну, есть такая ошибка, которая ни на что не влияет

75476

МихаилГл
30.04.2024, 16:54
Ну, есть такая ошибка, которая ни на что не влияет

75476

Но согласитесь, неприятная ситуация. Которая может вызвать панику... Сидишь такой и на, непонятно что из ниоткуда...

melky
30.04.2024, 17:18
интересно, а нажатие Enter, он же перевод строки для собственно строки не является вдруг символом ??? тем более завершающего символа комментария не было.

capzap
30.04.2024, 17:22
Но согласитесь, неприятная ситуация. Которая может вызвать панику... Сидишь такой и на, непонятно что из ниоткуда...

Точно такая же как жёлтый цвет у линии обратной связи, как сделать чтоб окно не появлялось я показал

МихаилГл
30.04.2024, 18:07
Точно такая же как жёлтый цвет у линии обратной связи, как сделать чтоб окно не появлялось я показал

Вы постоянно работаете в этой программе. А я последний раз основательно 5 лет назад. Меня бы это тоже в ступор ввело, хотя вроде сразу понятно из-за чего. По крайней мере я бы это сразу как ТС тут озвучил, чтобы исправили это. Его действия логичны. Среда вываливает ошибку на пустом месте, пусть исправляют. В кодесисе 3.5 у меня постоянно так комменты стоят. В вижуал студии и sql запросах тоже как хочу комментирую, а тут на тебе. Я не должен думать что это приведёт к ошибке. А по поводу линии задержки, тут ничего не скажу, это только в ОЛ так реализовано. В других средах такое вроде просто не позволит среда сделать, только через промежуточные звенья, хотя сред много...