⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testparsefile.java

📁 通讯采集软件
💻 JAVA
字号:
package pbs.application.iiop.GUI.huadong;

import java.util.*;
import java.io.*;
import java.net.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import pbs.sessionbean.ejb.*;
//import pbs.service.dao.*;
import pbs.service.function.*;
import pbs.service.vo.*;
import pbs.service.struct.*;
import pbs.com.enterprisedt.net.ftp.*;
import pbs.application.iiop.GUI.*;

public class testParseFile {
  static huadongData hd = null;
  static commonFunc cF = new commonFunc();
  static final int REPLACED = 1;

  public testParseFile() {
  }

  public static void main(String[] args) {
    testParseFile testParseFile1 = new testParseFile();
    Collection allRows = null;
    /*
         Date mm = new Date();
         mm.setTime(System.currentTimeMillis());
         System.out.println("the year = "+mm.getYear());
         System.out.println("the month = "+mm.getMonth());
         System.out.println("the date = "+mm.getDate());
         System.out.println("the hour = "+mm.getHours());
         System.out.println("the minute = "+mm.getMinutes());
     */
    Date m_Date = new Date();
    m_Date.setYear(106);
    m_Date.setMonth(4);
    m_Date.setDate(3);
    m_Date.setHours(0);
    m_Date.setMinutes(0);
    long start_time = pbs.service.function.timeFunc.truncTime(m_Date.getTime() /
        1000);
    System.out.println("start_time = " + start_time);
    allRows = getData("", 77777, start_time);
    ArrayList m_list = new ArrayList(allRows);
    for (int i = 0; i < m_list.size(); i++) {

    }

  }

  public static Collection getData(String dirName, int debug_no,
                                   long start_time) {
    Iterator it = null;
    Collection Rows = new ArrayList();
    Collection allRows = null;

    allRows = readFile(dirName, debug_no, start_time);
    ArrayList m_list = new ArrayList(allRows);
    System.out.println("一共有  " + m_list.size() + "  块表");
    for (int i = 0; i < m_list.size(); i++) {
      DataValue m_dd = (DataValue) (m_list.get(i));
      PrintOut(m_dd);
      System.out.println("///////////////////////////////////////");
    }
    DataValue tmpdv = null, tmpdv1 = null, tmpdv2 = null;
    it = allRows.iterator();
    int size = allRows.size();
    while (it.hasNext()) {
      tmpdv1 = (DataValue) it.next();
      tmpdv2 = (DataValue) it.next();
      if (tmpdv1.m_display_name.equalsIgnoreCase(tmpdv2.m_display_name)) {
        tmpdv = tmpdv2;
      }
      else {
        tmpdv = tmpdv1;
      }
      for (int i = 0; i < size - 2; i++) {
        tmpdv1 = (DataValue) it.next();
        if (!tmpdv.m_display_name.equalsIgnoreCase(tmpdv1.m_display_name)) {
          Rows.add(tmpdv);
          tmpdv = tmpdv1;
        }
        else {
          tmpdv = tmpdv1;
        }
      }
      Rows.add(tmpdv);
    }
    return Rows;
  }

  public static Collection readFile(String dirName, int m_debug_no,
                                    long start_time) {
    int ret, voNum, count = 0;
    String fileName = null;
    BufferedReader br = null;
    String readStr = null;
    String meName = null;
    String pre_meName = null;
    StringTokenizer st = null;
    double values = 0;
    int status = 0, type = 0;
    int count1 = 0, count2 = 0;
    long real_start_time = start_time + Constant.TIME_INTERVAL_QUARTER;
    DataValue dv;
    String dayStr = null;
    dayStr = getDayString(start_time);
    dayStr = dayStr.substring(2, 8);
    String dataName = "DL" + dayStr + ".dat";
    DataValueDetail dvt = null;
    int pre_type = 0;

    Collection allRows = new ArrayList();
    try {
      fileName = "D:\\file\\DL060503.dat";
      FileReader fr = new FileReader(fileName);
      br = new BufferedReader(fr);
      readStr = br.readLine();
      dv = new DataValue();
      dv.m_data_type = 0;
      boolean first = true;
      String bakString = null;

      while ( (readStr = br.readLine()) != null) {
        st = new StringTokenizer(readStr);
        while (st.hasMoreTokens()) {
          meName = st.nextToken();
        }
        if (!meName.equalsIgnoreCase("0") && !meName.equalsIgnoreCase("1") &&
            !meName.equalsIgnoreCase("2") && !meName.equalsIgnoreCase("3") &&
            !meName.equalsIgnoreCase("4") && !meName.equalsIgnoreCase("5")) {
          System.out.println("meName = " + meName);
          if (!first) {
            System.out.println("ready to add dv to allRows  meName = " +pre_meName);
            allRows.add(dv);
            real_start_time = start_time + Constant.TIME_INTERVAL_QUARTER;
            count2 = 0;
            count1 = 0;
            values = 0;
            status = 0;
            pre_type = 0;
            type = 0;
          }
          dv = new DataValue();
          dv.m_data_type = 0;
          dv.m_display_name = meName;
          dv.m_values = new ArrayList();
          if (first) {
            first = false;
          }
          pre_meName = meName;
        }
        else {
          ret = readString(readStr);
          if (ret > 0) {
            type = hd.m_data_type;
            if (pre_type == 0 || pre_type == type) {
              count1++;
              values += hd.m_data_value;
              status |= hd.m_data_status;
            }
            if (count1 == 15) {
              count1 = 0;
              count2++;
              dvt = new DataValueDetail();
              dvt.m_value_type = type;
              dvt.m_value = values;
              if (status == REPLACED) {
                status = Constant.PULSE_STATUS_REPLACE;
              }
              dvt.m_status = status;
              dvt.m_raw_value = values;
              dvt.m_occur_time = real_start_time;
              if (dvt.m_value_type > dv.m_data_type) {
                dv.m_data_type = dvt.m_value_type;
              }
              dv.m_values.add(dvt);
              real_start_time += Constant.TIME_INTERVAL_QUARTER;
              values = 0;
              status = 0;
              if (count2 == 96) { //一天一种类型(15分钟一个点)共96个点
                count2 = 0;
                count1 = 0;
                real_start_time = start_time + Constant.TIME_INTERVAL_QUARTER;
              }
              if (count2 != 96 && pre_type != 0 && pre_type != type) {
                count2 = 0;
                count1 = 0;
                real_start_time = start_time + Constant.TIME_INTERVAL_QUARTER;
              }
            }
            else { //count1!=15但是已经是另外一个类型----某一个类型的数据不全,放弃这个15分钟点
              if (pre_type != 0 && pre_type != type && count1 != 1) {
                System.out.println("pre_type = " + pre_type + "  type = " +type + " count1 = " + count1);
                real_start_time = start_time + Constant.TIME_INTERVAL_QUARTER;
                System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@不全不全不全    " +dv.m_display_name);
                count1 = 0;
                count2 = 0;
                values = 0;
                status = 0;
                ret = readString(readStr);
                if (ret > 0) {
                  type = hd.m_data_type;
                  count1++;
                  values += hd.m_data_value;
                  status |= hd.m_data_status;
                }
              }
            }
            pre_type = type;
          }
        }
      }
      System.out.println("last!!!!!!!    ready to add dv to allRows  meName = " +pre_meName);
      allRows.add(dv);

      fr.close();
    }
    catch (Exception ex) {
      processDebug.writeDebug(m_debug_no, "impDumpFile in area Error #1");
      DataOutputStream dsex = processDebug.getDebugStream(m_debug_no);
      ex.printStackTrace(new PrintStream(dsex));
      processDebug.closeDebugStream(dsex);
    }
    return allRows;
  }

  static void PrintOut(DataValue dv) {
    System.out.println("m_display_name = " + dv.m_display_name +
                       " m_data_type = " + dv.m_data_type);
    ArrayList m_list = new ArrayList(dv.m_values);
    for (int i = 0; i < m_list.size(); i++) {
      DataValueDetail m_DataValueDetail = (DataValueDetail) (
          m_list.get(i));
      System.out.print("no: " + new Integer(i + 1) + "  ");
      System.out.print("m_value_type = " +
                       m_DataValueDetail.m_value_type + "  ");
      System.out.print("m_occur_time = " +
                       getDayStringToMinute(m_DataValueDetail.
                                            m_occur_time) + "  ");
      System.out.print("m_value = " + m_DataValueDetail.m_value +
                       "  ");
      System.out.print("m_status = " + m_DataValueDetail.m_status +
                       "  ");
      System.out.print("m_raw_value = " +
                       m_DataValueDetail.m_raw_value + "  ");
      System.out.println();
    }
    System.out.println();
  }

  static String getDayString(long now_time) {
    pbs.service.util.Calendar cal = pbs.service.util.Calendar.getInstance();
    String timeStr, yearStr, monthStr, dayStr;
    cal.setTimeInMillis(now_time * 1000);
    yearStr = (new Integer(cal.get(pbs.service.util.Calendar.YEAR))).toString();
    if (cal.get(pbs.service.util.Calendar.MONTH) + 1 < 10) {
      monthStr = "0" +
          (new Integer(cal.get(pbs.service.util.Calendar.MONTH) + 1)).toString();
    }
    else {
      monthStr = (new Integer(cal.get(pbs.service.util.Calendar.MONTH) + 1)).
          toString();
    }
    if (cal.get(pbs.service.util.Calendar.DAY_OF_MONTH) < 10) {
      dayStr = "0" +
          (new Integer(cal.get(pbs.service.util.Calendar.DAY_OF_MONTH))).
          toString();
    }
    else {
      dayStr = (new Integer(cal.get(pbs.service.util.Calendar.DAY_OF_MONTH))).
          toString();
    }
    timeStr = yearStr + monthStr + dayStr;
    return timeStr;
  }

  static String getDayStringToMinute(long now_time) {
    pbs.service.util.Calendar cal = pbs.service.util.Calendar.getInstance();
    String timeStr, yearStr, monthStr, dayStr, hourStr, minuteStr;
    cal.setTimeInMillis(now_time * 1000);
    yearStr = (new Integer(cal.get(pbs.service.util.Calendar.YEAR))).toString();
    if (cal.get(pbs.service.util.Calendar.MONTH) + 1 < 10) {
      monthStr = "0" +
          (new Integer(cal.get(pbs.service.util.Calendar.MONTH) + 1)).toString();
    }
    else {
      monthStr = (new Integer(cal.get(pbs.service.util.Calendar.MONTH) + 1)).
          toString();
    }
    if (cal.get(pbs.service.util.Calendar.DAY_OF_MONTH) < 10) {
      dayStr = "0" +
          (new Integer(cal.get(pbs.service.util.Calendar.DAY_OF_MONTH))).
          toString();
    }
    else {
      dayStr = (new Integer(cal.get(pbs.service.util.Calendar.DAY_OF_MONTH))).
          toString();
    }
    if (cal.get(pbs.service.util.Calendar.HOUR_OF_DAY) < 10) {
      hourStr = "0" +
          (new Integer(cal.get(pbs.service.util.Calendar.HOUR_OF_DAY))).
          toString();
    }
    else {
      hourStr = (new Integer(cal.get(pbs.service.util.Calendar.HOUR_OF_DAY))).
          toString();
    }

    if (cal.get(pbs.service.util.Calendar.MINUTE) < 10) {
      minuteStr = "0" +
          (new Integer(cal.get(pbs.service.util.Calendar.MINUTE))).
          toString();
    }
    else {
      minuteStr = (new Integer(cal.get(pbs.service.util.Calendar.MINUTE))).
          toString();
    }

    timeStr = yearStr + monthStr + dayStr + " " + hourStr + ":" + minuteStr;
    return timeStr;
  }

  public static int readString(String conStr) {
    int ret;
    StringTokenizer st = null;
    String tmpString = null;
    hd = null;
    if (conStr == null) {
      return -1;
    }
    st = new StringTokenizer(conStr);
    while (st.hasMoreTokens()) {
      hd = new huadongData();
      tmpString = st.nextToken();
      hd.m_data_type = Integer.parseInt(tmpString);
      if (hd.m_data_type != 1 && hd.m_data_type != 2) {
        return -1;
      }
      tmpString = st.nextToken();
      tmpString = st.nextToken();
      hd.m_data_value = Double.parseDouble(tmpString);
      tmpString = st.nextToken();
      hd.m_data_status = Integer.parseInt(tmpString);
    }
    return 1;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -