У меня есть файл * .DAT, который можно открыть в текстовом редакторе. Я хочу извлечь из этого содержимое и преобразовать его в * .csv. Преобразованный файл CSV должен иметь заголовок (colnames), спецификацию (ниже и выше) и часть данных. Мне нужно конвертировать 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,
Я могу извлечь содержимое ниже [ДАННЫЕ] и сохранить в CSV-файл. Я не уверен, как извлечь содержимое выше, чтобы создать заголовок и т. Д. Я использовал код ниже, чтобы извлечь содержимое ниже [ДАННЫЕ]
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)
Чтобы извлечь содержимое выше [ДАННЫЕ], я попробовал приведенный ниже код безуспешно
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-файл, как показано ниже