#!/usr/bin/perl -w
use strict;
use warnings;
use Tie::File;

open(IN_FILE,"<E:/Hzj_works/test1.csv");

my $filename = "E:/Hzj_works/test1.csv";
tie my @array, 'Tie::File', $filename or die "$!";

if ( @array ) {
print "$filename have file. \n";
open(my $OT_FILE,">E:/Hzj_works/test2.csv");
while(my $line = <IN_FILE>){
my @fields = split "," , $line;
my @table;
my $tag1 = ",";
push(@table,"$fields[0]$tag1");

#if $fields[1]
my @timetemp = split ":" , $fields[1];
my $len = length($timetemp[0]);
my $hour;
my $min;
my $zero = "0"; #补0
if($len == 1){
$hour = "$zero$timetemp[0]";
}else{
$hour = $timetemp[0];
}
my $mint = substr($timetemp[1],0,1);
$min = "$mint$zero";
my $newtime = "$hour$mint$zero"; #变换后的时间
push(@table,"$newtime$tag1");

#假定 $fields[2]
my $mini = substr($fields[2],14,2); #获取分钟
my $minite = 30;#用于跟获取的时间比较
my $time1;
if($mini <= $minite){
my $mini1 = substr($fields[2],0,14);
my $mini2 = "30:00";
$time1 = "$mini1$mini2";
}else{
my $mini1 = substr($fields[2],0,14);
my $mini2 = "00:00";
#小时加1
my $hour1 = substr($fields[2],11,2);
my $hour2 = $hour1 + 1;
my $hour3 = substr($fields[2],0,11);
if($hour2 == 24){
$hour2 = "00";
}
my $tag = ":";
$time1 = "$hour3$hour2$tag$mini2";
}

push(@table, "$time1$tag1", "$fields[3]$tag1", $fields[4]);
print @table;
print $OT_FILE $_ for @table;
}
}
else {
print "$filename is empty. \n";
exit;
}

close(IN_FILE);

(个人)读取A.CSV修改它的某列,写入B.CSV的更多相关文章

  1. C# mvc读取模板并修改上传到web

    C# mvc读取模板并修改上传到web 后台: public FileResult GetXls() { FileStream fs = new FileStream(System.Web.HttpC ...

  2. 在CSV文件中增加一列属性值

    具体参见:系统管理\将文件夹复制到列表中的远程主机   修改前: column1, column2 1,b 2,c 3,5   修改后: column1, column2, column3 1,b, ...

  3. C# CSV文件的导入导出以及datatable转化csv

    1.csv文件写入操作 首先,创建datatable对象: DataTable dt = new DataTable(); 添加列: dt.Columns.Add("name", ...

  4. 使用sql语句创建修改SQL Server标识列(即自动增长列)

    一.标识列的定义以及特点SQL Server中的标识列又称标识符列,习惯上又叫自增列.该种列具有以下三种特点:1.列的数据类型为不带小数的数值类型2.在进行插入(Insert)操作时,该列的值是由系统 ...

  5. IO流的练习5 —— 读取文件中的字符串,排序后写入另一文件中

    需求:已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl” 请编写程序读取数据内容,把数据排序后写入ss.txt中. 分析: A:读取文件中的数据 B:把数 ...

  6. Easyui Datagrid 修改显示行号列宽度

    EasyUI中Datagrid的第一列显示行号,可是如果数据量大的的时候,显示行号的那一列数据会显示不完全的. 可以通过修改Datagrid的样式来解决这个问题,在样式中加入下面这个样式,就可以自己修 ...

  7. 备忘:MySQL中修改表中某列的数据类型、删除外键约束

    -- MySQL中修改表中某列的数据类型 ALTER TABLE [COLUMN] 表名 MODIFY 列名 列定义; -- 删除外键约束 SHOW CREATE TABLE 表名; -- 复制CON ...

  8. JAVA之旅(二十七)——字节流的缓冲区,拷贝mp3,自定义字节流缓冲区,读取键盘录入,转换流InputStreamReader,写入转换流,流操作的规律

    JAVA之旅(二十七)--字节流的缓冲区,拷贝mp3,自定义字节流缓冲区,读取键盘录入,转换流InputStreamReader,写入转换流,流操作的规律 我们继续来聊聊I/O 一.字节流的缓冲区 这 ...

  9. UiPath工具取得网页上面的数据,写入到csv,Outlook邮件发送

    问题描述: 想取得网页上面的股票价格,之后写入到csv文本里面之后添加附件发送邮件. 解决方法: 利用UIPath工具来取得数据,之后写入再发送. 具体步骤: 1.打开网页,之后找到所显示的股票行情的 ...

随机推荐

  1. 实现简易的android 直播技术

    Android 的直播,主要使用的是camera采集的数据推流到服务器上,在客户端播放camera采集的数据.采用SurfaceView+ SurfaceTexture来显示camera数据, Sur ...

  2. 11种dialogBox样式打包开源,逐一详解

    期待已久,APICloud官方总算把各种提示样式给封装了,再也不用苦逼的自己各种被虐着封装自定义样式了.这个分享我把 dialogBox 模块的 11 个样式分别实现个简单的效果,其中将 alert ...

  3. Java控制语句——break和continue

    在任何循环语句的主体部分,均可用break控制循环的流程. break用于强行退出循环,不执行循环中剩余的语句.(break语句还可用于多支语句switch中) continue 语句用于循环语句体中 ...

  4. NPOI 导入,导出EXCEL

    代码: public static class NPOIExcelHelper { /// <summary> /// DataTable导出到Excel文件 /// </summa ...

  5. RFS一些基本概念

    1. Project.Directory.TestSuit.TestCase.Resource的区别?   Project:项目名称   Directory:对项目进行分层   TestSuit:测试 ...

  6. Java File类基本操作

    我们可以利用Java.io.File类对文件进行操作,基本操作如下: 1)创建文件: public boolean createNewFile() throws IOException 2)删除文件: ...

  7. 安装和删除 Alcatraz 插件

    在终端下输入如下命令来安装Alcatraz: curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install. ...

  8. Spring Security HTTP Basic for RESTFul and FormLogin (Cookies) for web - Annotations

    @Configuration @EnableWebMvcSecurity @EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabl ...

  9. LUA闭包概念演示

    闭包的一个重要场景,形成一个自治的环境, 让操作可以封闭运行, 即函数运行时有状态的,可以从闭包创建时候的环境独立开来. 例如下面的lua闭包, genFilter 其入参parmIn是 函数的内部变 ...

  10. oracle导sql脚本

    在plsql里,新建命令窗口,输入如下命令 @d:\test.sql