找回密码
 register

QQ登录

只需一步,快速开始

查看: 853|回复: 0

[游戏教程] 天龙八部将PetAttrTable.txt提取出来做成PetTypeAttr.txt的格式

[复制链接]

[游戏教程] 天龙八部将PetAttrTable.txt提取出来做成PetTypeAttr.txt的格式

[复制链接]
  • 打卡等级:热心大叔
  • 打卡总天数:94
  • 打卡月天数:17
  • 打卡总奖励:94
  • 最近打卡:2025-01-18 01:28:20
Waylee

主题

0

回帖

1万

积分

仙帝

积分
12364
Waylee 2023-5-7 00:00 | 显示全部楼层 |阅读模式

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×
因为前几天我把宝宝文件也改了,需要重新生成一下PetTypeAttr
V1:
# 读取输入文件名和输出文件名参数
param(
  [Parameter(Mandatory=$true)]
  [string]$input_file,

  [Parameter(Mandatory=$true)]
  [string]$output_file
)

# 读取输入文件中的所有行
$data = Get-Content $input_file -Encoding UTF8

# 初始化已处理的第三列数据数组和需要输出到文件的数据数组
$processed_data = @()
$output_data = @()

# 处理每一行数据
foreach ($line in $data) {
  # 将每行数据按制表符分隔为多个字段
  $fields = $line.Split("`t")

  # 将第三列转换为整数
  $col3 = [int]$fields[2]

  # 如果第一列中的值是一个五位数字,则删除最后一位
  if ($fields[0] -match "^\d{5}$") {
    $fields[0] = $fields[0].Substring(0, 4)
  }

  # 判断第三列是否已经存在于已处理的第三列数据数组中,若存在则跳过
  if ($processed_data -contains $col3) {
    continue
  }

  # 将处理后的第一列数据替换到第三列
  $fields[2] = $fields[0]

  # 将需要输出到文件的行数据加入输出数组和已处理的第三列数据数组中
  $output_data += ,($fields[2],$fields[1],$fields[3])
  $processed_data += ,$col3
}

# 对需要输出到文件的数据按第三列进行排序
$output_data = $output_data | Sort-Object {[int]$_.Item(0)}

# 将处理完成的数据输出到文件
$output_data | ForEach-Object { $_ -join "`t" } | Out-File -FilePath $output_file -Encoding UTF8

# 输出处理完成的消息
Write-Output "Done."


重新修改了V2:
# 读取输入文件名和输出文件名参数
param(
  [Parameter(Mandatory=$true)]
  [string]$input_file,

  [Parameter(Mandatory=$true)]
  [string]$output_file
)

# 读取输入文件中的所有行
$data = Get-Content $input_file -Encoding UTF8

# 初始化一个空的 hashtable 用于记录已经输出过的第三列的值
$processed_values = @{}

# 处理每一行数据
foreach ($line in $data) {
  # 将每行数据按制表符分隔为多个字段
  $fields = $line.Split("`t")

  # 获取第三列的数值
  $value_3 = $fields[2]

  # 如果已经处理过这个值,则直接跳过
  if ($processed_values.ContainsKey($value_3)) {
    continue
  }

  # 将这个值标记为已处理
  $processed_values[$value_3] = $true

  # 获取需要输出的列
  $value_2 = $fields[1]
  $value_4 = $fields[3]

  # 将这三列的值组合成一个字符串
  $output_line = "$value_3`t$value_4`t$value_2"

  # 将处理后的行数据输出到输出文件
  $output_line | Out-File -FilePath $output_file -Append -Encoding UTF8
}

# 输出处理完成的消息
Write-Output "Done."






您需要登录后才可以回帖 登录 | register

本版积分规则

雪舞知识库 | 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 |天天打卡

GMT+8, 2025-1-19 23:02 , Processed in 0.102202 second(s), 7 queries , Redis On.

Powered by XueWu Licensed

Copyright © Tencent Cloud.

快速回复 返回顶部 返回列表