У меня есть файл *.DAT, который можно открыть в текстовом редакторе. Я хочу извлечь из этого некоторое содержимое и преобразовать его в *.csv. Преобразованный CSV-файл должен иметь заголовок (имена столбцов), спецификацию (ниже и выше) и часть данных. Мне нужно преобразовать 100 файлов такого типа в *.csv (как отдельные файлы csv или все вместе в один большой файл csv)
Пример фрагмента моего файла *.DAT будет выглядеть следующим образом
[FILEINFO]
VERSION=V4.0
FILENAME=TEST.DAT
CREATIONTIME=2015-07-09 22:05:26
[LOTINFO]
LotNo=A6022142
DUT=BCEK450049
PRODUCTNAME=EX061
Order=
ChipCode=
SACH_NO=B39000-
MAT_NO=B39000-P810
[SPEC1]
TXT=SEN1
Unit=
LSL=-411.400000
USL=-318.700000
[SPEC2]
TXT=SEN2
Unit=
LSL=-11.000000
USL=11.000000
[SPEC3]
TXT=SEN3
Unit=
LSL=-45.000000
USL=10.000000
[DATA]
2,29,-411.232,10.193,-11.530,
3,29,-411.257,10.205,-11.328,
Я могу извлечь содержимое ниже [DATA] и сохранить в файле csv. Я не уверен, как извлечь содержимое выше, чтобы создать заголовок и т. д. Я использовал приведенный ниже код для извлечения содержимого ниже [DATA].
library(stringr)
library(readr)
myTXT <- read_file("EXAMPLE.DAT")
ExtData <- read.csv(text =
sub(".*\\[DATA\\]\\s+", "", my_txt), header = FALSE)
dat2csv <- write.csv(ExtData, dat_2_csv.csv",row.names=FALSE)
Чтобы извлечь содержимое выше [DATA], я безуспешно пробовал код ниже.
con <- file("EXAMPLE.DAT","r")
OneLine <- c()
while(True) {
line = readLines(con,1)
if(length(line) == 0) break
elseif(line="LSL=")
RES <- str_split(line,"=",simplify=TRUE)
lines <- RES[1,2]
}
Ожидаемый выходной CSV-файл, как показано ниже.