package csv;
import java.util.HashMap;
import interfaces.Treshold;
public class CSVOperator {
public void write_plain_csv(CSVReader csv_reader, CSVWriter csv_writer)
{
String[] header = csv_reader.get_header();
String header_row = "";
for (int i = 0; i < header.length; i++)
{
if(i < header.length - 1)
{
header_row += header[i] + csv_writer.get_delimiter();
}
else
{
header_row += header[i];
}
}
header_row += csv_writer.get_line_break();
csv_writer.writeLine(header_row);
String[] columns;
while((columns = csv_reader.read_line()) != null)
{
String row = "";
for (int i = 0; i < columns.length; i++) {
row += columns[i];
if(i < columns.length-1)
{
row += csv_writer.get_delimiter();
}
}
row += csv_writer.get_line_break();
csv_writer.writeLine(row);
}
csv_writer.close();
}
public void rewrite_csv_in_new_order(CSVReader csv_reader, CSVWriter csv_writer, String[] order)
{
rewrite(csv_reader, csv_writer, order, null, null);
}
public void rewrite_csv_in_new_order(CSVReader csv_reader, CSVWriter csv_writer, Integer[] order)
{
rewrite(csv_reader, csv_writer, order, null, null);
}
public void rewrite_csv_with_deletes(CSVReader csv_reader, CSVWriter csv_writer, String[] deletes)
{
rewrite(csv_reader, csv_writer, null, deletes, null);
}
public void rewrite_csv_with_deletes(CSVReader csv_reader, CSVWriter csv_writer, Integer[] deletes)
{
rewrite(csv_reader, csv_writer, null, deletes, null);
}
public void rewrite_csv_with_new_order_and_deletes(CSVReader csv_reader, CSVWriter csv_writer, String[] order, String[] deletes)
{
rewrite(csv_reader, csv_writer, order, deletes, null);
}
public void rewrite_csv_with_new_order_and_deletes(CSVReader csv_reader, CSVWriter csv_writer, Integer[] order, Integer[] deletes)
{
rewrite(csv_reader, csv_writer, order, deletes, null);
}
public void rewrite_csv_with_tresholds(CSVReader csv_reader, CSVWriter csv_writer, String[] order, String[] deletes, Treshold[] tresholds)
{
rewrite(csv_reader, csv_writer, order, deletes, tresholds);
for (Treshold treshold : tresholds)
{
treshold.destroy();
}
}
public void rewrite_csv_with_tresholds(CSVReader csv_reader, CSVWriter csv_writer, Integer[] order, Integer[] deletes, Treshold[] tresholds)
{
rewrite(csv_reader, csv_writer, order, deletes, tresholds);
for (Treshold treshold : tresholds)
{
treshold.destroy();
}
}
//experimental
public void rewrite_csv_with_tresholds_new(CSVReader csv_reader, CSVWriter csv_writer, String[] order, Treshold[] tresholds)
{
HashMap<Integer, Integer> real_indices_to_desired_column_indices = get_real_indices_to_desired_column_indices_new(csv_reader, csv_writer, order);
rewrite_header(csv_reader, csv_writer, real_indices_to_desired_column_indices);
rewrite_rows(csv_reader, csv_writer, real_indices_to_desired_column_indices, tresholds);
csv_reader.close();
csv_writer.close();
for (Treshold treshold : tresholds)
{
treshold.destroy();
}
}
private void rewrite(CSVReader csv_reader, CSVWriter csv_writer, String[] order, String[] deletes, Treshold[] tresholds)
{
HashMap<Integer, Integer> real_indices_to_desired_column_indices = get_real_indices_to_desired_column_indices(csv_reader, csv_writer, order, deletes);
rewrite_header(csv_reader, csv_writer, real_indices_to_desired_column_indices);
rewrite_rows(csv_reader, csv_writer, real_indices_to_desired_column_indices, tresholds);
csv_reader.close();
csv_writer.close();
}
private void rewrite(CSVReader csv_reader, CSVWriter csv_writer, Integer[] order, Integer[] deletes, Treshold[] tresholds)
{
HashMap<Integer, Integer> real_indices_to_desired_column_indices = get_real_indices_to_desired_column_indices(csv_reader, csv_writer, order, deletes);
rewrite_header(csv_reader, csv_writer, real_indices_to_desired_column_indices);
rewrite_rows(csv_reader, csv_writer, real_indices_to_desired_column_indices, tresholds);
csv_reader.close();
csv_writer.close();
}
private HashMap<Integer, Integer> get_real_indices_to_desired_column_indices(CSVReader reader, CSVWriter writer, String[] order, String[] deletes)
{
if(order == null)
{
order = new String[0];
}
else if(deletes == null)
{
deletes = new String[0];
}
HashMap<Integer, Integer> real_indices_to_desired_column_indices = null;
String[] header = reader.get_header();
int new_column_count = header.length;
if(order.length == 0 && deletes.length == 0)
{
real_indices_to_desired_column_indices = new HashMap<Integer, Integer>(header.length);
for (int i = 0; i < header.length; i++)
{
real_indices_to_desired_column_indices.put(i, i);
}
}
else if(order.length == 0)
{
new_column_count = header.length - deletes.length;
real_indices_to_desired_column_indices = new HashMap<Integer, Integer>(new_column_count);
for (int i = 0; i < header.length; i++)
{
real_indices_to_desired_column_indices.put(i, i);
}
for (int i = 0; i < deletes.length; i++)
{
int original_index = reader.get_column_index(deletes[i]);
real_indices_to_desired_column_indices.put(original_index, -1);
}
}
else if(deletes.length == 0)
{
real_indices_to_desired_column_indices = new HashMap<Integer, Integer>(order.length);
for (int i = 0; i < order.length; i++)
{
int original_index = reader.get_column_index(order[i]);
real_indices_to_desired_column_indices.put(original_index, i);
}
}
else
{
new_column_count = header.length - deletes.length;
real_indices_to_desired_column_indices = new HashMap<Integer, Integer>(new_column_count);
for (int i = 0; i < header.length; i++)
{
real_indices_to_desired_column_indices.put(i, i);
}
for (int i = 0; i < deletes.length; i++)
{
int original_index = reader.get_column_index(deletes[i]);
real_indices_to_desired_column_indices.put(original_index, -1);
}
for (int i = 0; i < order.length; i++)
{
int original_index = reader.get_column_index(order[i]);
real_indices_to_desired_column_indices.put(original_index, i);
}
}
writer.set_new_column_count(new_column_count);
return real_indices_to_desired_column_indices;
}
private HashMap<Integer, Integer> get_real_indices_to_desired_column_indices(CSVReader reader, CSVWriter writer, Integer[] order, Integer[] deletes)
{
HashMap<Integer, Integer> real_indices_to_desired_column_indices = null;
String[] header = reader.get_header();
int new_column_count = header.length;
if(order == null && deletes == null)
{
real_indices_to_desired_column_indices = new HashMap<Integer, Integer>(header.length);
for (int i = 0; i < header.length; i++)
{
real_indices_to_desired_column_indices.put(i, i);
}
}
else if(order == null)
{
new_column_count = header.length - deletes.length;
real_indices_to_desired_column_indices = new HashMap<Integer, Integer>(new_column_count);
for (int i = 0; i < header.length; i++)
{
real_indices_to_desired_column_indices.put(i, i);
}
for (int i = 0; i < deletes.length; i++)
{
real_indices_to_desired_column_indices.put(deletes[i], -1);
}
}
else if(deletes == null)
{
real_indices_to_desired_column_indices = new HashMap<Integer, Integer>(order.length);
for (int i = 0; i < order.length; i++)
{
real_indices_to_desired_column_indices.put(order[i], i);
}
}
else
{
new_column_count = header.length - deletes.length;
real_indices_to_desired_column_indices = new HashMap<Integer, Integer>(new_column_count);
for (int i = 0; i <
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
PHP版LIMS(开放实验室信息管理系统) (2000个子文件)
DBConfig.conf 218B
CSVConfig.conf 200B
JobConfig.conf 97B
jquery-ui.css 34KB
base_navigation_main.css 16KB
base.css 16KB
data.css 6KB
main.css 5KB
base_form.css 3KB
project.css 2KB
organiser.css 2KB
navigation.css 2KB
jquery.jscrollpane.css 2KB
login.css 1KB
base_list.css 1KB
sample.css 1KB
main.css 1KB
ajax.css 979B
organisation_unit.css 643B
base_login.css 563B
ie7debug.css 301B
manufacturer.css 300B
user.css 131B
Thumbs.db 182KB
Thumbs.db 178KB
Thumbs.db 144KB
Thumbs.db 6KB
oldl.dtd 2KB
loading.gif 11KB
loading_upload.gif 4KB
loading_circle.gif 3KB
circle.gif 2KB
loading_circle_small.gif 2KB
.gitignore 31B
.gitignore 28B
.gitignore 13B
.gitignore 12B
.gitignore 12B
.gitignore 12B
.gitignore 11B
.gitignore 11B
.gitignore 7B
license.html 33KB
list_measuring_units.html 11KB
user_settings.html 11KB
login.html 10KB
detail_menu.html 8KB
user_personal.html 8KB
list_paper_sizes.html 8KB
edit.html 7KB
add.html 7KB
log.html 6KB
detail_menu.html 6KB
clone_sample_page_2.html 5KB
parameter_detail.html 5KB
dialog.html 5KB
value_description_detail.html 5KB
new_sample_page_3.html 5KB
value_detail.html 5KB
list.html 5KB
detail.html 4KB
list_measuring_unit_ratios.html 4KB
detail.html 4KB
file_detail.html 4KB
data_permission.html 4KB
user_change_password.html 4KB
menu.html 4KB
parameter_add.html 3KB
detail.html 3KB
new_project_page_2.html 3KB
list_measuring_unit_categories.html 3KB
main.html 3KB
data_permission_window.html 3KB
add_status_process.html 3KB
administration.html 3KB
user_details.html 3KB
new_project_page_1.html 3KB
main_header.html 2KB
add_process.html 2KB
menu.html 2KB
month.html 2KB
value_add.html 2KB
associate.html 2KB
login.html 2KB
ffv_search.html 2KB
year.html 2KB
proceed.html 2KB
add_milestone.html 2KB
add.html 2KB
list.html 2KB
new_project_page_0.html 2KB
new_sample_page_5.html 2KB
user_profile.html 2KB
add.html 2KB
file_upload_item.html 2KB
detail_quality_manager.html 2KB
permission_add_edit.html 2KB
detail_group.html 2KB
list.html 2KB
clone_sample_page_5.html 2KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
- 真心无著2019-08-24噢,NO,好吧
- JohndyWu2019-03-02加载进linux之后,如何安装?
- soctober2019-05-24没有运行起来。
- himotec2019-10-18太简单了,用处不大
- edgesun2019-02-06注意,是:php + pgsql。没装pgsql,没运行起来。
jnagri
- 粉丝: 8
- 资源: 30
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功