Skip to content

Commit dc2c920

Browse files
authored
Merge pull request EvilBeaver#1668 from johnnyshut/bugfix/1179
fix: Привести поведение ЧтениеТекста по умолчанию к совместимости с 1С 8.3.11+
2 parents 19a504d + 126d144 commit dc2c920

3 files changed

Lines changed: 15 additions & 12 deletions

File tree

src/OneScript.StandardLibrary/Text/TextReadImpl.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -171,8 +171,7 @@ private void RequireOpen()
171171
public static TextReadImpl Constructor (IValue input)
172172
{
173173
var reader = new TextReadImpl ();
174-
reader.AnalyzeDefaultLineFeed = false;
175-
reader.Open (input, null, "\n", "\r\n");
174+
reader.Open(input);
176175
return reader;
177176
}
178177

@@ -183,9 +182,7 @@ public static TextReadImpl Constructor (IValue input)
183182
[ScriptConstructor(Name = "Формирование неинициализированного объекта")]
184183
public static TextReadImpl Constructor()
185184
{
186-
var reader = new TextReadImpl();
187-
reader.AnalyzeDefaultLineFeed = false;
188-
return reader;
185+
return new TextReadImpl();
189186
}
190187

191188
/// <summary>

tests/text-read.os

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,10 @@
144144

145145
// В конструкторе не указываем конвертируемый перевод строк
146146
Ч = Новый ЧтениеТекста(ИмяВременногоФайла);
147-
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "123123123\r", "\r в конце строки (через конструктор без параметров по-умолчанию)");
148-
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "45/645/645/6\r", "\r в конце строки (через конструктор без параметров по-умолчанию)");
147+
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "123123123", "Нет \r в конце строки (через конструктор без параметров по-умолчанию)");
148+
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "", "Пустая строка вместо \r (через конструктор без параметров по-умолчанию)");
149+
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "45/645/645/6", "Нет \r в конце строки (через конструктор без параметров по-умолчанию)");
150+
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "", "Пустая строка вместо \r (через конструктор без параметров по-умолчанию)");
149151
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "789789789");
150152

151153
Ч.Закрыть();
@@ -163,17 +165,21 @@
163165
// Используем конструктор по-умолчанию и открытие без указания конвертируемого перевода строк
164166
Ч = Новый ЧтениеТекста;
165167
Ч.Открыть(ИмяВременногоФайла);
166-
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "123123123\r", "\r в конце строки (через открытие без параметров по-умолчанию)");
167-
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "45/645/645/6\r", "\r в конце строки (через открытие без параметров по-умолчанию)");
168+
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "123123123", "Нет \r в конце строки (через открытие без параметров по-умолчанию)");
169+
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "", "Пустая строка вместо \r (через открытие без параметров по-умолчанию)");
170+
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "45/645/645/6", "Нет \r в конце строки (через открытие без параметров по-умолчанию)");
171+
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "", "Пустая строка вместо \r (через открытие без параметров по-умолчанию)");
168172
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "789789789");
169173

170174
Ч.Закрыть();
171175

172176
// Используем конструктор по-умолчанию и открытие с указанием конвертируемого перевода строк "по-умолчанию"
173177
Ч = Новый ЧтениеТекста;
174178
Ч.Открыть(ИмяВременногоФайла,,,);
175-
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "123123123\r", "\r в конце строки (через открытие с параметрами по-умолчанию)");
176-
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "45/645/645/6\r", "\r в конце строки (через открытие с параметрами по-умолчанию)");
179+
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "123123123", "Нет \r в конце строки (через открытие с параметрами по-умолчанию)");
180+
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "", "Пустая строка вместо \r (через открытие с параметрами по-умолчанию)");
181+
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "45/645/645/6", "Нет \r в конце строки (через открытие с параметрами по-умолчанию)");
182+
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "", "Пустая строка вместо \r (через открытие с параметрами по-умолчанию)");
177183
юТест.ПроверитьРавенство(ЭкранироватьПереводыСтрок(Ч.ПрочитатьСтроку()), "789789789");
178184

179185
Ч.Закрыть();

tests/text-write.os

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@
274274
Текст.Открыть(ПутьФайла,"UTF-8");
275275
Стр = Текст.Прочитать();
276276

277-
юТест.ПроверитьРавенство(6, КоличествоСтрок);
277+
юТест.ПроверитьРавенство(10, КоличествоСтрок);
278278
юТест.ПроверитьРавенство(125, СтрДлина(Стр));
279279

280280
КонецПроцедуры

0 commit comments

Comments
 (0)