Что нового

Мнимые пустые строки в текстовом файле

gerkuless

Новичок
Сообщения
12
Репутация
0
Добрый день! Прошу помощи в следующей проблеме:
Есть текстовые файлы со строками. Необходимо из файла 1.txt удалить повторяющиеся строки из файла 2.txt и сохранить результат в 3.txt. На просторах форума нашел как это сделать, но данный способ сохраняет мнимые пустые строки. Т.е. во вложении из примера файл 1.txt имеет строки 1,2,3,4,5 если в файл 2.txt добавить строку 1, то в файл 3.txt запишется 2,3,4,5. И вроде все правильно и визуально все хорошо, но если запросить первую строку файла 3.txt то он выдаст пустую строку. Подскажите как избавиться от этих мнимых пустых строк. Спасибо!
Код:
global $lines[1], $test1, $test2
$test1=FileRead(@ScriptDir & "\1.txt")
$test2=FileRead(@ScriptDir & "\2.txt")
$lines = StringRegExp($test2, "(?m)^(.+)$", 3)
For $x = 0 to Ubound ($lines) - 1
    $test1 = StringRegExpReplace($test1, "(?m)" & $lines[$x] & "[\r\n]?", "")
 Next
FileDelete(@ScriptDir & "\3.txt")
FileWrite(@ScriptDir & "\3.txt", $test1)
$List=FileOpen(@ScriptDir & "\3.txt",0)
$stroka = FileReadLine($List, 1)
ConsoleWrite($stroka  & @CRLF)
 

Вложения

  • primer.rar
    578 байт · Просмотры: 4

hedji

Продвинутый
Сообщения
409
Репутация
94
Код:
$file1 = FileReadToArray("D:\Scripts\1.txt")
$file2 = FileReadToArray("D:\Scripts\2.txt")
$check = 0
For $str1 in $file1
	For $str2 In $file2
		If StringInStr($str1, $str2, 0)<>0 Then
			$check = 1
		EndIf
	Next
	If $check = 0 Then
		FileWriteLine("D:\Scripts\3.txt", $str1)
	EndIf
	$check = 0
Next

$stroka = FileReadLine("D:\Scripts\3.txt", 1)
ConsoleWrite($stroka  & @CRLF)
 
Верх