【UiPath2022+C#】UiPath 练习-数据操作

【UiPath2022+C#】UiPath 练习-数据操作

环境

UiPath Studio Community 2022.4.3

Windows

C#

练习

练习 1 - 列表
对列表进行排序并打印 3 个值

给定国家/地区的输入列表,请对该列表进行排序,并按降序打印前 3 个值。

注意: 请使用此值初始化列表:new List(of String) from {“Germany”, “Spain”, “Japan”, “Brazil”, “India”, “China”}。

解决方案
  1. 序列形式启动项目,并使用以下默认值定义字符串变量(“country”)的列表,默认值为:new List(string) (){“Germany”, “Spain”, “Japan”, “Brazil”, “India”, “China”}。
  2. 添加一个调用方法活动。在“方法名称”下写入“Sort”,在“目标对象”下写入“country”。保持“目标类型”不变 (null)。
  3. 在“方法名称”下再添加一个“调用方法”活动。在“方法名称”下写入“Reverse”,并填写其他 2 个字段,就像在前面的“调用方法”中一样
  4. 创建一个新的字符串变量列表newVariable
  5. 向“设计器”面板添加一个分配活动。
  6. 字段中,输入原始变量的名称,再输入 country.GetRange(0,3)。此变量将前三个值存储在排序列表中。
  7. 添加一个写入行活动。这将打印值。
  8. 使用string.Join方法:string.Join (", ", newVariable.ToArray()),在写入行活动的文本中。

在这里插入图片描述

练习 2 - 列表和日期时间
验证列表中的日期在今年是否已过

给定格式为 dd.MM.yyyy 的输入字符串列表,请检查是否有任何日期的月份与当前月份相同,然后打印该日期以输出。

对于具有不同月份的日期,请打印以输出从当前日期到列表日期(当年)为止经过/到期的天数。

注意: 使用以下值初始化列表:new List(string) from {“01.02.1980”, “04.05.1985”,“06.08.1988”,“24.09.1999”,“18.11.1986”,“11.10.1983”}

解决方案

在序列中使用遍历循环活动遍历列表中的所有项目(“变量名中的遍历循环项目”),并在正文中使用以下活动和方法:

  1. 创建一个日期时间变量(“dateTime”),并使用DateTime.ParseExact方法 ,在“分配”活动中,以转换为日期时间:dateTime= DateTime.ParseExact(item, “dd.MM.yyyy”, null)

  2. 使用“IF 条件”活动以验证项目的月份是否与当前月份相同:dateTime.Month == DateTime.Today.Month:

    • 如果满足条件,则使用写入行活动和“ToString(“yyyy-MM-dd”)”方法打印消息。
    • 如果不满足条件,则使用以下活动和方法添加序列:
    • a. 使用“分配”活动中的“Subtract”方法创建一个新的 int32 类型的变量(“day”),以计算当月与项目月份之间的差值:day = DateTime.Now.Subtract(new DateTime(DateTime.Today.Year, dateTime.Month, dateTime.Day)) .Days
    • b. 将条件声明为 day > 0,然后使用“IF 条件”活动验证日期是未来日期还是过去日期,并使用“写入行”活动中的“String.Format”方法为过去或未来月份打印不同的消息:string.Format(“从当前日期到列表日期(当年{0}月{1}日)为止经过{2}天”,dateTime.Month, dateTime.Day,day) 和 string.Format(“从当前日期到列表日期(当年{0}月{1}日)为止到期还剩下{2}天”,dateTime.Month, dateTime.Day,Math.Abs(day)).

    流程和变量

    在这里插入图片描述

    If语句

在这里插入图片描述

练习 3 - 字典和整数
计算并打印每位环法自行车赛冠军的获胜次数

给定包含年份和姓名的输入字典,请计算每位冠军的获胜次数,并打印所有冠军的姓名及其相应的获胜次数。

注意: 使用以下值初始化(Int32、字符串)类型的字典 - New Dictionary(Of Int32,String) From {{2006,“Oscar Pereiro”},{2007,“Alberto Contador”}, {2008, “Carlos Sastre”}, {2009,“Alberto Contador”}, {2010, “Andy Schleck”}, {2011, “Cadel Evans”}, {2012,“Bradley Wiggins”}, {2013,“Chris Froome”}, {2014,“Vincenzo Nibali”},{2015,“Chris Froome”},{2016,“Chris Froome”},{2017,“Chris Froome”}, {2018,“Geraint Thomas”}}

解决方案
  1. 序列形式启动项目并创建一个新的字典,类型为 (String, Int32)
  2. 利用“遍历循环”(“遍历 FirstDictionaryName.Values 中的 WinnerNames”)遍历第一个字典中的值,并检查该值是否已存在且已作为新字典的键,检查时使用**.ContainsKey方法**, 该方法在“IF 条件”活动(“SecondDictionaryName.ContainsKey(WinnerName)”)中:
    1. 如果满足条件,则使用“分配”活动以增加相应键的值:WinnerCounts(WinnerName) = WinnerCounts(WinnerName) + 1
    2. 如果不满足条件,则使用“调用方法”活动将键添加到第二字字典,其值为“1”,以及使用目标对象添加第二个字典名称,并“Add”作为方法名称
  3. 使用“遍历循环”活动遍历第二个字典(“SecondDictionaryName 中的遍历循环冠军”),并利用“写入行”活动打印所有冠军的姓名及其相应的获胜次数。

流程和变量

在这里插入图片描述

遍历循环

在这里插入图片描述

练习 4 - 字典和双精度数
计算发送到一个城市的包裹总重量

考虑某家航运公司的数据库,其中包含公司人员,以及公司发往世界各地某些城市的包裹及其重量。该数据库是一个字典,其键为字符串类型(人员姓名),值为字典类型(字符串/城市、双精度数/重量)。

请计算一个城市目的地的总重量。计算完成后,应向用户显示一个输入对话框,其中包含输入数据字典中显示的不同城市列表。如果用户没有从输入对话框中选择任何值,则打印“用户未选择任何值”;否则,您可以打印“发送到 <选定城市> 的包裹总重量为 x.xx”(使用两位数)。

注意:对于输入数据,请下载下面已定义字典的工作流。

New Dictionary(Of String, Dictionary(Of String, Double)) From {

{“John C”, New Dictionary(Of String, Double) From {{“Madrid”,2.1},{“Paris”,1.1}} },

{“Sarah C”, New Dictionary(Of String, Double) From {{“New York”,2.1},{“Paris”,3.3},{“Berlin”, 0.8}} },

{“Kyle R”, New Dictionary(Of String, Double) From {{“San Francisco”,2.8},{“NewYork”,1.1}} },

{“Johnny B”, New Dictionary(Of String, Double) From {{“New York”,2.1},{“Paris”,3.3}, {“Cairo”,1.3},{“Chicago”,1.9}} }}

解决方案
  1. 序列形式启动项目.
  2. 使用“遍历循环”遍历初始字典的值,然后(在正文中)使用“遍历循环”活动遍历第二个字典(城市)的键,并检查字典中是否已有城市,(使用“IF 条件”和“包含”方法):
    1. 如果满足条件,则使用“分配”活动将存储在相应值中的重量添加到现有值中;
    2. 如果不满足条件,则使用“分配”活动将存储在相应值中的重量;

3.使用“输入对话框”活动,通过在“活动”属性的“选项”下使用 SecondVariableName.Keys.ToArray() 显示所有城市

a.如果用户选择城市,则使用“写入行”打印“发送到 <选定城市> 的包裹总重量为 x.xx”。

流程和变量

在这里插入图片描述

For Each配置

在这里插入图片描述

If配置

在这里插入图片描述

练习 5 - 输入验证
验证用户的字符串输入

开发一个工作流,根据一组规则要求用户输入文本,并将输入验证的规则合并到工作流。

更具体地说,用户输入的字符串必须通过以下验证规则:

  • 最小长度:8 个字符
  • 以大写字母开头
  • 最多 20 个字符

若输入不符合规则,允许用户有 3 次重新输入的机会(不考虑用户未输入任何内容的情况)。

注意: 在本练习中,请使用流程图。

解决方案
  1. 流程图的形式启动项目(考虑到预期的大量决策点),并通过“消息框”将规则告知用户。
  2. 向用户显示“输入对话框”。
  3. 检查用户是否已在输入字段中输入任何内容。如果未提供任何文本,则返回到"输入对话框"阶段。
  4. 使用正则表达式验证输入文本正则表达式(“是匹配”活动)-“高级”类型,"^[A-Z]{1}\w{7,18}$"
  5. 使用 Int32 变量计算用户输入尝试失败次数(不考虑未输入任何内容)。
  6. 使用决策节点检查用户是否已达到 3 次失败尝试。
  7. 如果用户达到最多 3 次失败尝试,则使用“写入行”活动输入以输出以下消息:“超出最大重试次数”,并结束执行。
  8. 如果正则表达式验证通过,则打印以下消息以输出:“您的文本遵循规则!”,并结束执行。您可以使用变量存储向用户显示的文本。

流程和变量

在这里插入图片描述

练习 6 - 更换占位符
获取输入信息并用来填充字符串

您具有以下模板:“ <姓名>,您好,我们想邀请您参加下周 <星期几> 的开幕活动,请在本周末之前确认。"

创建一个工作流以获取用户输入,并替换上述短语中提供的输入数据。

注意: 请使用上面的文本创建一个字符串变量。

解决方案
  1. 序列形式启动项目,并创建2 个字符串变量,分别存储姓名和星期几。
  2. 使用 2 个“输入对话框”活动来获取用户的输入。
  3. 对输入数据的 2个字符串中的每个字符串,在“分配”活动中使用“Replace”方法:VariableName = VariableName.Replace(“”,“”)。
  4. 使用“写入行”活动打印输出。

流程和变量

在这里插入图片描述

练习 7 - 使用正则表达式提取电子邮件地址
从字符串提取电子邮件地址(使用正则表达式)

给定一个包含一个电子邮件地址的字符串,创建一个工作流以使用正则表达式提取电子邮件地址。

注意: 对于输入,请使用具有以下值的字符串变量:“Please use the following address to contact me john.doe@localcompany.com, it’s the company email”。

解决方案
  1. 序列形式启动项目.
  2. 使用“匹配项”活动和为电子邮件地址量身定制的正则表达式,并使用 IEnumerable 变量 存储所提取的电子邮件地址。
  3. 使用“遍历循环”活动遍历所创建的变量中的值,并使用“写入行”活动和“值”方法显示值。

流程和变量

在这里插入图片描述

正则配置

在这里插入图片描述

文档

循环
If条件语句
数据操作

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
题目如下 In this exercise, you will create a UiPath automation that performs the steps below. To achieve this, you will use the REFrameWork as the starting template and follow the UiPath development best practices. Here are the steps performed by the Robot: 1. Log in to https://www.acme-test.com. 2. On the landing page, Dashboard, click on the Work items menu item. Scrape the data in all the pages of the table, page by page, ensuring error handling and recovery. 3. For each page: - Filter the records where Status is 'Open'; - Filter the records where Type is 'WI5'; - Filter the records where WIID is less than 500000; - Append the resulting datatable into an Excel worksheet; you shouldn't worry about the headers and format of the output file. Constraints to follow in the development, using the REFrameWork: 1. TransactionItem datatype should be a String. The process should recover and retry in case of errors in navigation between WorkItems page. One transaction is the action of scraping one web page.By navigating to the next page, the next transaction will execute. (Same as ACME Process 4 Dispatcher from the UiPath Academy). 2. Create a separate workflow file for the Login to ACME. File input arguments: URL ; Username ; Password . 3. Create a separate workflow file for closing ACME. 3. Add the ACME_URL and ACME_Credential to the Config file. 4. Populate InitAllApplications.xaml from the Framework folder with Invoking the Login to ACME and navigation to the Work Items. 5. Populate CloseAllApplications.xaml from the Framework folder with Invoking the Close ACME. 6. Populate KillAllProcesses.xaml from the Framework folder with killing the process used. 7. Populate the Process.xaml file with the following actions: Web scraping, Filtering and Appending to Excel. Important Note: Don't use external file references, outside of the project folder (including Orchestrator Assets). Place all the used files within the project folder, zip that folder and upload it to the UiPath Certification Platfor

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会敲键盘的肘子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值