. : : ClassiClub ForuM : : .

会员中心 论坛帮助 日历事件 标记论坛已读
返回   精品技术论坛 » 技术论坛 » 『软件使用』

『软件使用』: 电脑软件推荐, 电脑软件使用, 经验分享



发表新主题 回复
 
主题工具
一平
 
一平 的头像
核心会员
 
资 料:
注册日期: Aug 2000
帖子: 3,439 声望值: 3
精华: 1,解答: 19
#1 旧 2019-02-20, 08:28:59 默认 已解答: 【求助】求一个批处理或者脚本编写
一平 当前离线  

批处理需求如下:
有一个文件,非文本格式文件File1.dat,但里面有特定偏移量位置字段信息是明文的。
需要从里面特定偏移量%A地址,截取长度为%B的字段,导出到File2.txt
需要从里面特定偏移量%C地址,截取长度为%D的字段,导出追加到File2.txt
然后File2.txt追加一个空行,以方便我在处理下一个同名文件时,追加的内容字段有间隔。


积极的人像太阳,照到哪里哪里亮;消极的人像月亮,初一十五不一样。
回复时引用此帖
最佳解答为:minuteman
吃饭前写个小程序
minuteman
 
minuteman 的头像
终极会员
 
资 料:
注册日期: Oct 2001
帖子: 18,644 声望值: 3
精华: 1,解答: 26
#2 旧 2019-02-20, 11:37:40 默认
minuteman 当前离线  

吃饭前写个小程序
上传的图像
文件类型: png 2019-02-20_113544.png (1.9 KB, 152 次查看)
上传的附件
文件类型: zip Project1.zip (88.0 KB, 3 次查看)
回复时引用此帖
pontiff
 
pontiff 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 4,446 声望值: 8
精华: 0,解答: 8
#3 旧 2019-02-20, 13:00:47 默认
pontiff 当前离线  

学学python 吧很容易就可以了
文件读取,指针定位
回复时引用此帖
jimmy_dong
 
jimmy_dong 的头像
管理员
 
资 料:
注册日期: Aug 2000
帖子: 4,614 声望值: 9
精华: 2,解答: 85
#4 旧 2019-02-20, 14:11:09 默认
jimmy_dong 当前离线  

授人以渔,不如先给人鱼

PHP 代码:
# -*- coding:utf-8 -*-
import sys

if len(sys.argv) < 5:
    print(
"use: python3 this_file [input_file] [output_file] [begin] [length]")
    exit()

input_file sys.argv[1]
output_file sys.argv[2]
begin int(sys.argv[3])
length int(sys.argv[4])

with open(output_file'ab') as out:
    
with open(input_file'rb') as f:
        
f.seek(begin)
        
out.write(f.read(length))
    
out.write(bytes("\n"encoding='ascii'))
print(
"done"
注意: 要用Python3

~~呵呵~~


……你呀,考虑一下吧,要快一点,你知道,肚子很快又饿了。 jimmy_dong@sina.com Oicq:816937

如果失去了“呵呵”,生活会是怎样?
回复时引用此帖
一平
 
一平 的头像
核心会员
 
资 料:
注册日期: Aug 2000
帖子: 3,439 声望值: 3
精华: 1,解答: 19
#5 旧 2019-02-22, 07:10:49 默认
一平 当前离线  

谢谢2楼的兄弟。
能不能麻烦再写个小程序,就是寻找一个指定字符串的起始偏移量,输出位置到文件。
这样我就可以自己再写批处理,和之前你写的小程序做个整合。
回复时引用此帖
minuteman
 
minuteman 的头像
终极会员
 
资 料:
注册日期: Oct 2001
帖子: 18,644 声望值: 3
精华: 1,解答: 26
#6 旧 2019-02-22, 07:29:55 默认
minuteman 当前离线  

引用:
作者: 一平 查看帖子
谢谢2楼的兄弟。
能不能麻烦再写个小程序,就是寻找一个指定字符串的起始偏移量,输出位置到文件。
这样我就可以自己再写批处理,和之前你写的小程序做个整合。
搜索特定关键字,然后从这个关键字开始取一段字符串出来?那不如直接用windows自带的一些小工具了吧,比如find,findstr等等,或者直接grep的win32版本,通过正则提取
回复时引用此帖
minuteman
 
minuteman 的头像
终极会员
 
资 料:
注册日期: Oct 2001
帖子: 18,644 声望值: 3
精华: 1,解答: 26
#7 旧 2019-02-22, 11:16:36 默认
minuteman 当前离线  

改了一下以前写的一个程序,加了一个功能进去,匹配的字符串是PCRE的正则,当然直接这样写固定字符串也没问题,注意转义符就行,看例子截图应该差不多吧
上传的图像
文件类型: png 2019-02-22_111336.png (2.0 KB, 53 次查看)
上传的附件
文件类型: zip Project1.zip (129.9 KB, 3 次查看)

此帖于 2019-02-22 11:43:08 被 minuteman 编辑. .
回复时引用此帖
一平
 
一平 的头像
核心会员
 
资 料:
注册日期: Aug 2000
帖子: 3,439 声望值: 3
精华: 1,解答: 19
#8 旧 2019-02-22, 13:30:47 默认
一平 当前离线  

呵呵,谢谢楼上各位兄弟。
我根据这两个小程序结合起来,写的批处理,呵呵,完美实现了我的需求。
回复时引用此帖
发表新主题 回复

主题工具

论坛规则  发帖规则
不可以发表主题
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子
论坛启用 vB 代码
版面启用 表情符号
版面启用 [IMG] 代码
版面禁用 HTML 代码


所有时间均为北京时间, 现在的时间是 19:42:00.

本论坛带宽由迅通网络提供
SSL证书由TrustAsia提供

Copyright © 2000 - 2019 ClassiClub Forum All Rights Reserved.
粤ICP备09123456号