package com.huawei;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Convert
{
// '?'对应的assic码
public final int QUESTION_MARK = 63;
public void convert2Number(String path, String resFileName, String newFileName) throws IOException
{
FileReader fr = null;
FileWriter fw = null;
try {
fr = new FileReader(new File(path + resFileName));
fw = new FileWriter(new File(path + newFileName));
int i = fr.read();
int num = 1;
while(-1 != i)
{
if(QUESTION_MARK == i)
{
fw.write(String.valueOf(num));
num++;
}
else
{
fw.write(i);
}
i = fr.read();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally
{
fr.close();
fw.close();
}
}
}
===================
package com.huawei;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class GUI
{
private String filePath;
private File srcFile;
private JFrame jFrame = null;
private JButton choseButton = null;
private JButton computeButton = null;
private JTextField jtf = null;
private JLabel la = null;
private JFileChooser jfc = null;
private ButtonListener buttLis = new ButtonListener();
public void Frame() {
jFrame = new JFrame("报 文 编 号");
jFrame.setLayout(new FlowLayout());
jtf = new JTextField(15);
choseButton = new JButton("选择");
computeButton = new JButton("编号");
la = new JLabel("请选择文件路径:");
jfc = new JFileChooser();
jfc.setCurrentDirectory(new File("D:\\"));
jfc.setDialogTitle("选择文件");
jfc.setDragEnabled(false);
//添加控件
jFrame.add(la);
jFrame.add(jtf);
jFrame.add(choseButton);
jFrame.add(computeButton);
choseButton.addActionListener(buttLis);
computeButton.addActionListener(buttLis);
//设置
jFrame.setBounds(250, 200, 600, 350);//frame初始显示位置
jFrame.setSize(400, 100);
jFrame.setVisible(true);
jFrame.setResizable(false);//将frame设置成不能改变大小
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
/**
* main 函数
*/
public static void main(String[] args) {
GUI gui = new GUI();
gui.Frame();
}
/**
* 监听类
*/
class ButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent event)
{
// TODO Auto-generated method stub
if (event.getSource().equals(choseButton))
{
// 设置其只能选择文件
jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
int state = jfc.showOpenDialog(null);
if (state == 1)
{
return;
}
else
{
srcFile = jfc.getSelectedFile();
jtf.setText(srcFile.getAbsolutePath());
filePath = srcFile.getPath();
}
}
else
{
Convert con = new Convert();
if (filePath == null)
{
JOptionPane.showMessageDialog(jFrame, "请先选择文件");
}
else
{
try {
con.convert2Number(filePath.replace(srcFile.getName(), ""), srcFile.getName(), "编号结果.txt");
JOptionPane.showMessageDialog(jFrame, "编号完成!");
} catch (IOException e) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(jFrame, e);
}
}
}
}
}
}
分享到:
相关推荐
第二代支付系统(以下简称CNPAS2)报文交换标准采纳了部分ISO20022报文作为CNPAS2的报文,并借鉴ISO20022规范开发了其他报文,全部报文均采用XML格式描述。其中,对采纳使用的ISO20022报文,CNPAS2根据实际情况,...
1. 监管平台到企业的交换报文:该部分规定了监管平台到企业的交换报文的格式和内容,包括报文编号、文件命名规则、报文结构和报文示例。 2. 企业到监管平台的交换报文:该部分规定了企业到监管平台的交换报文的格式...
812报文中的关键信息包括:报文编号、时间戳、订单信息、发票信息、使用的货币、供应商内部编码、产品分类、供应商标识和联系方式、调整发起方的名称和位置信息、调整细节以及可能涉及的产品信息。在处理这些信息时...
- **5.1.2.1 编号说明**:报文编号用于唯一标识每个报文,便于跟踪和管理。 以上内容构成了商业银行在执行跨境支付业务时,与人民币跨境收付信息管理系统交互的核心规范。理解并严格遵守这些规范,能够确保数据的...
网络层报文组织中,报文以组的形式传输,每组包含报文编号、组内报文数量和报文的组内编号。通过比较不同节点收到的报文数,可以检测丢包情况。 链路检测控制报文包括ACK和NACK两种类型。ACK报文表示节点已转发指定...
1. **基本文首区段(Block 1)**:这是报文的基础,提供了关于发送者的基本信息,包括应用标识、服务标识、目的地址、线程序号以及电文的连续编号。例如,`{1:F01CITITWTXXXXX7842733622}`,其中`F01`表示区段标识,...
报文头包括报文类型、报文长度和报文编号等信息。报文体包括具体的控制命令和数据。报文尾包括报文校验和错误检查。 四、GSD 文件 GSD 文件是西门子 PLC 控制 V90 PN 所需的文件。通过安装 V90 GSD 文件,PLC 可以...
表头记录中包含报文文件名、报文编号、报文功能代码、报文类型代码、发送方代码、接受方代码、发送时间、报文版本和备注等字段。舱单概况信息记录中包含舱单传输人名称、运输工具离境地海关代码、运输工具代理企业...
这些知识点涉及到了报文头部信息、固定值字段、扩展操作码、TLV结构、管理对象的操作、以及特定管理对象(如PON端口、ONU设备信息)的标识和编号方式。了解这些内容对于EPON网络的设计、部署和维护至关重要。
5. **Command和Direction**:“01 00 03 00”包含Command(01 00)和Direction(03 00),其中01 00表示命令编号,03 00表示方向,这里指示报文是从客户端发送到服务器的。 6. **包体**:包体包含了具体的命令数据...
5. 数据块编号:用于区分同一报文中多个数据块。 6. 数据值:实际要操作的数据内容,可能是输入/输出的值,或是要写入PLC中的值。 7. 位操作:S7协议支持按位操作,对于精确控制非常有用,如bit写入允许用户控制单个...
- `<Head>` 包含报文头信息,如报文编号、发送者、接收者、发送时间等关键信息。 - `<Body>` 内则包含舱单头信息 `<Manifest_head>` 和可循环的提单信息 `<Blno>`,以及多个可循环的集装箱信息 `<Conta>`。 3. **...
在配置报文捕获功能时,用户可以先配置ACL规则,用来抓取指定ACL编号规则的报文。操作步骤包括执行命令system-view,进入系统视图,然后执行命令capture-packet { interface interface-type interface-number | acl ...
标题 "81-82报文文档解释1" 描述了一种特定的报文格式,用于在软件或插件中处理进出卡口的信息。这种报文结构主要用于物流、海关监管等场景,涉及到的数据元素十分丰富,包括车辆、驾驶员、货物、集装箱、IC卡等关键...
在实验中,报文编号19表示与其对应的响应报文。 3. **网管程序读取设备信息过程**:网管程序通过发送`get-request`和`get-next-request`报文,请求被管设备的各种变量信息。设备收到请求后,返回`get-response`报文...
在SAE J1939-21中,CAN ID被划分为不同的部分,例如在DM1报文中,PGN(参数组数编号)为65226(00FECA),表明这是用来传输故障代码和状态的报文。如果源地址为0x41,那么完整的DM1报文ID就是18FECA41。DM1报文的...
这些域的编号从1到128,其中第1域是消息类型标识,第2域至第9域是固定长度的数据域,第10域至第128域是可变长度的数据域。每个域的格式和数据类型可以因不同的金融机构或应用场景而有所不同,这就需要解析程序具备...
实验中提到的报文ID为259469308,其对应的响应报文编号为120。 2. **网管程序读取被管设备信息的过程** - 网管程序通过发送`get-request`和`get-next-request`类型的SNMP报文来获取被管设备的信息。在报文中指定...
根据SAE J1939-73标准中的定义,DM1报文具有一定的优先级和PGN(Parameter Group Number,参数组数编号)。 - **优先级**: 定义为6。 - **PGN**: 为65226(00FECA)。 因此,当源地址为0x41时,DM1 ID为18FECA41。...
- **BGM(Beginning of Message)**:标识报文的起始,如"BGM+213+ORSP12856+4'"表示这是一个订购单应答,编号为ORSP12856。 - **DTM(Date/Time Reference)**:提供了日期和时间信息,如"DTM+137:19970330:102'...