Сравнение файлов
#1
Отправлено 01 декабря 2004 - 11:40
#2
Отправлено 01 декабря 2004 - 12:04
#3
Отправлено 01 декабря 2004 - 12:19
#4
Отправлено 01 декабря 2004 - 12:31
v save ja zadaju polnyj put' k failu "C:\\...\\save1.txt". Ne soxranjaet nichego. Ili nado ne txt-file zadavat'? kak eto voobsche rabotaet?
#5
Отправлено 02 декабря 2004 - 09:25
И не найдете - нет их.Mozhet byt' est' kaie-nibud' funkcii v WR dlja udalenija stroki iz fajla. Ja poka ix ne nashla.
А послдедний параметр в file_compare - про него в User's Guide все написано.
Там надо не путь к файлу задавать, а просто имя:
# Compare win.ini to win1.ini and save both files to "save".
file_compare("c:\\win\\win.ini","c:\\win\\win1.ini","save");
The optional save_file parameter saves the name of a third file, which
contains the differences between the first two files.
И тогда в папке \<имя_теста>\<имя_результата/debug>\<имя_теста>\ будут файлы с именами save.a и save.b
То есть я например от этой фигни толку особого не вижу...
Зато можно сделать например вот так:
public function file_compare2(in file1, in file2, in diff)
{
auto rc, tmpfile, line, command;
command = "fc \"" & file1 & "\" \"" & file2 & "\" > \"" & diff & "\"";
dos_system(command);
if(file_compare(file1, file2))
tl_step("File Compare", -1 , "Mismatch detected between File: " & file1 & " and File: " & file2 & ", See output file: "&diff);
else
tl_step("File Compare", 0 , "File: " & file1 & " matches File: " & file2);
}
Example:
file_compare2("d:\\temp\\file a.txt","d:\\temp\\file b.txt", "d:\\temp\\diff.txt");
То есть суть в том, что: чтобы сравнивать файлы в WR удобнее, чем он это может, надо приложить дополнительные усилия. Это вам не Silktest, где просто море всяческих "сервиснх" функций, которые в WR приходится писать самому. Хотя справедливости ради - со сравнением файлов там тоже не фонтан - только чистое сравнение и результат - одинаковы или нет, без наворотов... :)
#6
Отправлено 02 декабря 2004 - 10:55
a mozhno li iz fajla udalit' opredelennuju strochku pered tem kak ego s drugim failom sravnivat'?
#7
Отправлено 02 декабря 2004 - 12:14
Повторюсь - готовых функций для таких вещей нет.Spasibo za podrobnyi otvet.
a mozhno li iz fajla udalit' opredelennuju strochku pered tem kak ego s drugim failom sravnivat'?
А сделать можно - надо зачитать файл по строчками и переписать его в другой, пропустив ту, что вам нужно удалить. Все делается на связке file_getline + file_printf.
типа
while (file_getline(sFile1,sTmpString)==E_OK)
{
if (sTmpString!="тут ваша строка")
file_printf(sFile2,"%s\n",sTmpString);
}
"Пацанский способ" - это взять API какого-нить Araxis merge и вообще его юзать для сравнения файлов с возможностью фильтрации и т.п. наворотов, но игра не стоит свеч в большинстве случаев, включая Ваш :)
#8
Отправлено 03 декабря 2004 - 13:28
Проблема в том, что не открывается фаил xml="...\\name.gpa"
и file="\\name1.xml" тоже не открывается. Проверяла это if (file-open()==E-OK)
Моя функция
function XMLToFile(xml,file){
static TmpString,s;
file-open(xml,FO-MODE-READ);
file-open(file,FO-MODE-WRITE);
while (file-getline(xml,TmpString)==E-OK)
{
if ((index(TmpString,"<Folders NextID=")==0)||(index(TmpString,"<Tags NextID=")==0))
if ((index(TmpString,"<Objec!s NextID=")==0)||(index(TmpString,"<Routes NextID=")==0))
if ((index(TmpString,"<Pictures NextID=")==0)||(index(TmpString,"<Compositions NextID=")==0)||(index(TmpString,"<Presentations NextID=")==0))
file-printf(file,"%s\n",TmpString);
}
}
Можно ли вообще открывать xмл-файлы. Я где-то видела, что можно задавать, что файл открывать нужно в определенном редакторе, но не могу найти. Может быть эти файлы нужно в Notepadе открывать?
#9
Отправлено 06 декабря 2004 - 10:02
Ну, так и что у вас возвращает функция file-open()? Могу поспорить, что код ошибки равный -10033 (Проблема в том, что не открывается фаил xml="...\\name.gpa"
и file="\\name1.xml" тоже не открывается. Проверяла это if (file-open()==E-OK)
E_FILE_NOT_FOUND). Задайте правильный и полный путь к файлу.
Есть еще правда вариант что вы пытаетесь открыть файл, только что созданный вашим тестируемым приложением, и еще не закрытый.... Тогда надо или предварительно закрыть приложение, или скопировать файл в другой, вызвав команду системы copy (через dos_system).
Ну вроде все, чем можно помочь...
#10
Отправлено 06 декабря 2004 - 10:05
Алина, ну вы меня пугаете.. :ph34r: А какое это отношение имеет к функциям WinRunner? Они открывают любые файлы, текст там или не текст - все равно они будут работать с ними как с текстоавыми. И потом - XML - чем вам не текстовый файл? :huh:Можно ли вообще открывать xмл-файлы. Я где-то видела, что можно задавать, что файл открывать нужно в определенном редакторе, но не могу найти. Может быть эти файлы нужно в Notepadе открывать?
#11
Отправлено 08 декабря 2004 - 07:49
IMHO, для работы с XML-файлами нельзя использовать функции обработки этих файлов, как текстовых. Т.к. в при такой обработке XML-файлов могут возникунть непредвиденные сложности: представьте ситуацию, когда структура исходного файла меняется: например, тэг переновится на другую строку и т.д. В этом случае процедура модификации XML файла должна подвергаться изменению.Мне надо из xмл-ного файла с расширением .gpa скопировать содержимое, за исключением несколькиx строчек, в другой файл с расширением .xml.
Поэтому, я, использую DLL (Delphi), в которой (на основе стандартного парсера XML) разработаны функции изменения значений параметров, добавления, удаления тэгов и т.д.
#12
Отправлено 08 декабря 2004 - 08:18
Нет, ну это понятно - в общем случае лучше заточенные под формат решения использовать...IMHO, для работы с XML-файлами нельзя использовать функции обработки этих файлов, как текстовых. Т.к. в при такой обработке XML-файлов могут возникунть непредвиденные сложности: представьте ситуацию, когда структура исходного файла меняется: например, тэг переновится на другую строку и т.д. В этом случае процедура модификации XML файла должна подвергаться изменению.
Но речь в вопосе шла не о работе с XML, а осравнении двух XML файлов с предвариетльным удалением заданной строки из одного из них. Строки, а не значения тэга или не дай бог атрибута ;)
Соответсвенно вопросу я и предложил более подходящее и простое решение...
#13
Отправлено 08 декабря 2004 - 09:03
Единственное, о чём хочется предупредить -- XML часто хранится в Unicode (или хотя бы UTF-8), так что не всякий инструмент, работающий с текстом, справляется с управлением. Если внутри буковки только английские, тогда проблем нет, а если нет (например, русские) -- тогда будьте осторожны. Выбирайте правильный просмотрщик, редактор, сравниватель, и прочая, чтобы они понимали Unicode.И потом - XML - чем вам не текстовый файл? :huh:
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных