Перейти к содержимому

galogenIt

Регистрация: 12 авг 2008
Offline Активность: 13 дек 2020 11:41
-----

#91889 Как файл .xls Save As .txt?

Написано galogenIt 31 июля 2011 - 18:58

Может просто сохранить в csv формате?

tab15, совершенно прав. Проще сохранить в csv. Хотя нет никакого труда сохранить в ЛЮБОМ нужном Вам формате. Для этого нужно обратится к Excel как COM_объекту

// Excel - сохранить как----------------------------------------------------------------------------
// тип файла, если 1 - в формате "xls"
//                 6 - в формате "csv"
function SaveAs(aFileName : String; aFileType : Integer = 1) : boolean;
var
  vMsExcel : OleVariant;
begin
  _FileDelete(aFileName);
  vMsExcel := _OleObjectCreate();
  // сохраянем книгу
  vMsExcel.Workbooks.Item[1].SaveAs(aFileName, aFileType);
  vMsExcel.Quit();
  vMsExcel := nil;
  // убиваем процесс
  while Sys.WaitProcess('EXCEL').Exists do
    Sys.Process('EXCEL').Terminate();
  // проверяем, существует ли сохраняемый файл; это и будет проверкой, что данная функция отработала нормально
  result := _FileExists(aFileName);
end;

или

// Excel - сохранить как...
// тип файла, если 1 - в формате xls, 6 - в csv
function ExcelSaveAs(aFileName : String; aFileType : Integer = 1) : boolean;
var
  vMsExcel : OleVAriant;
  p1       : OleVAriant;
begin
  if aqFile.Exists(aFileName) then
    aqFile.Delete(aFileName);
  Delay(2000);  
  // ожидание открытия окна MSExcel
  p1 := Sys.WaitProcess('EXCEL', 120000, -1);
  Delay(2000); // тут уж ничего неподелаешь ... непонятные тормоза независящие от процесса  
  if not (p1.Window('XLMAIN', '*').Window('XLDESK').WaitWindow('EXCEL7', '*', 1, 120000).Exists) then
  begin
    Log.Error('Окно Excel не открылось. Тест продолжен не будет');
    if Sys.WaitProcess('EXCEL').Exists then
      p1.Terminate();
      CloseProcess;  
    Runner.Stop(true);
  end;
  p1.Window('XLMAIN', '*').Minimize(); 
  Delay(5000);
  vMsExcel := Sys.OleObject('Excel.Application');
  vMsExcel.DisplayAlerts := False;
  vMsExcel.Workbooks.Item[1].SaveAs(aFileName, aFileType);
  vMsExcel.Displayalerts := 0; // типа отключить встроенные предупреждения Excel'я
  vMsExcel.Quit();
  vMsExcel := nil;
  
  while Sys.WaitProcess('EXCEL').Exists do
    Sys.Process('EXCEL').Terminate();
    
  if aqFile.Exists(aFileName) then
  begin
    Log.Message('Файл: ' + aFileName + ' - успешно сохранен.');
    result := true
  end else
  begin
    Log.Error('Файл: ' + aFileName + ' - не сохранен.');
    result := false;
  end;
end;

  • 1


#66231 Управление тестовыми прогонами

Написано galogenIt 25 марта 2009 - 07:30

Добрый день коллеги

Имею опыт использования TestComplete чуть больше полугода. Сделано много, понято много, в том числе благодаря форуму.

По мере расширения плана тестирования и автотестов стали возникать проблемы управления запусками в автоматическом режиме.

Сейчас ведется один тестовый набор (testsuite) с тремя проектами (скорее ветками проектов)

Запуск осуществляется всего testSuite ночью по назначеному заданию. Все работает замечательно. Все нравится.

Но возникают определнные проблемы. В частности. Решили перейти к firebird 2.1.x Переход не просто. Системщики сделали свое дело и возникла потребность прогнать все имеющиеся тесты на этой конфигурации.

Сразу возникла проблема как включить новый стенд в общий план тестирования.
TC не позволяет в TestItems TestSuitы добавить скажем копию проект, но с другим параметром. Естественно можно клонировать проект назначив ему другое тестовое приложение. Это сразу создает проблемы хранения набора в SVN и естественно увеличивает затраты на поддержание еще и копии транка. Да и не правильно это на самом деле...

Казалось бы выход может быть найден через создания bat-файла. В котором будут последовательно вызываться нужные тестовые проекты, где в качестве параметра можно будет передавать код тестового приложени

Кстати я уже ранее пытался это сделать, что-то типа такого
REM Запуск имеющихся тестов по релизу 1.1

"C:\Program Files (X86)\Automated QA\TestComplete 6\Bin\TestComplete.exe" "D:\AutoTests\RegressTest\Consultant\Consultant.pjs" /r /p:r-1.1 /e /SilentMode /testapp:0

REM Запуск имеющихся тестов по релизу 1.2

"C:\Program Files (X86)\Automated QA\TestComplete 6\Bin\TestComplete.exe" "D:\AutoTests\RegressTest\Consultant\Consultant.pjs" /r /p:trunk /e /SilentMode /ns /testapp:0

REM Запуск имеющихся тестов по релизу 1.2 (fb2.1.x)

"C:\Program Files (X86)\Automated QA\TestComplete 6\Bin\TestComplete.exe" "D:\AutoTests\RegressTest\Consultant\Consultant.pjs" /r /p:trunk /e /SilentMode /ns /testapp:1

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

Забавно, что если я писал только запуск юнитов, они исполнялись, а вот проекты нет

Прошу дать совет, возможно, кто-то сталкивался с подобными проблемаим. Как решили их?
Какие средства управления планами прогонов есть? Лучше free-ware конечно

Спасибо
  • 1