Что нового

сравнение 2х текстовых файлов

serg41

Новичок
Сообщения
14
Репутация
0
Версия AutoIt: 3.3.14.x

Описание: Здравствуйте, уважаемые форумчане, прошу Вас помочь решить проблему.
Есть 2 файла с кучей строк типа "иванов иван иваныч 01.08.1980" нужно как-то перебирая строки 1-го файла проверить их наличие во 2 -м файле. Честно признаюсь что в аутоите я новичек. Срочно требуется такая программа проверялка.

Примечания: Нет.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Не нужно выделять текст.
 
Автор
S

serg41

Новичок
Сообщения
14
Репутация
0
ВОТ ПРИЛОЖИЛ
 

Вложения

  • 0222.txt
    121 байт · Просмотры: 16
  • 0223.txt
    84 байт · Просмотры: 11
Автор
S

serg41

Новичок
Сообщения
14
Репутация
0
посмотрел функцию и если честно не понял как и что она делает
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
serg41,
Можно примерно так сделать.
Код:
#include <Array.au3>

Opt('MustDeclareVars', 1)

Global $sFile = @ScriptDir & '\0223.txt', $sFileCheck = @ScriptDir & '\0222.txt', $aTmp, $oDict, $aResult[1]

$oDict = ObjCreate('Scripting.Dictionary')
If @error Then Exit 1
$aTmp = StringSplit(StringStripWS(StringStripCR(FileRead($sFile)), 3), @LF)
For $i = 1 To $aTmp[0]
	$oDict.Item($aTmp[$i])
Next
$aTmp = StringSplit(StringStripWS(StringStripCR(FileRead($sFileCheck)), 3), @LF)
ReDim $aResult[$aTmp[0] + 1]
For $i = 1 To $aTmp[0]
	If $oDict.Exists($aTmp[$i]) Then ContinueLoop
	$aResult[0] += 1
	$aResult[$aResult[0]] = $aTmp[$i]
Next
$oDict = 0
$aTmp = 0
ReDim $aResult[$aResult[0] + 1]
_ArrayDisplay($aResult)
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Я делал так :
Код:
#include <Array.au3>


$Name='Результат' ; Имя текстового файла, куда запишется результат

Dim $Rezult[0]
$Line=0
$File1= FileOpenDialog('Выбор файла 1', @ScriptDir & '\', 'Текстовый файл (*.txt)', 1 + 2)
$File2= FileOpenDialog('Выбор файла 2', @ScriptDir & '\', 'Текстовый файл (*.txt)', 1 + 2)
$ArrayFile1=FileReadToArray($File1)
$ArrayFile2=FileReadToArray($File2)

$File = FileOpen(@ScriptDir & '\'&$Name&'.txt', 2+8) 
                                                     

  For $i=0 to UBound($ArrayFile1)-1
	  $Index = _ArraySearch($ArrayFile2, $ArrayFile1[$i])
	 If $Index > 0 then

	     ReDim $Rezult[$Line+1]
	     $Rezult[$Line]=$ArrayFile1[$i]
	     $Line+=1
		 FileWrite($File,$ArrayFile1[$i]&@CRLF)
	  EndIf

  Next

FileClose($File)
 
Автор
S

serg41

Новичок
Сообщения
14
Репутация
0
всем спасибо задача временно снята
 
A

Alofa

Гость
serg41 Зачем заново изобретать велосипед.
В опциях файлового менеджера "Total Commander" есть команда "Синхронизировать каталоги" которая отлично справится с вашей задачей, и не только.
 
A

Alofa

Гость
OffTopic:
madmasles человеку нужно готовое решение здесь и сейчас.
Мое дело предложить.
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
OffTopic:
Alofa
Этот форум - о скриптовом языке программирования, соответственно, и решения здесь обычно в виде скриптов Autoit.
Total Commander в интернете любят пихать по любому вопросу, но для данной задачи это соверешенно ни к чему.
 
Верх