Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:

THEMA: Script for convert CSV to LSG

Script for convert CSV to LSG 1 Jahr 4 Monate her #94042

  • Rostik
  • Rostiks Avatar
  • OFFLINE
  • Fresh Lemon
  • Beiträge: 1
  • Karma: 0
Dear,
after some troubles with mass import from CSV, i create perl script for convert CSV to LSG
file with exsample data attached (must be name: list.txt)

format of list.txt (where L/R=type of questions):
======
Q|L|1|qestion text 1
A|L|1|ansver text 1-1
A|L|1|ansver text 1-2
Q|R|2|qestion text 2
A|R|2|ansver 2-1
A|R|2|ansver 2-2
A|R|2|ansver 2-3


===== perl script =======
#!/usr/bin/perl
open (ORGDB_PC,"<./list.txt");
@ODB_PC=<ORGDB_PC>;
close (ORGDB_PC);

$start_num="600";
$default_lang="ru";
#############################

###########

foreach $rec_pc (@ODB_PC){
chomp($rec_pc);
($type,$a_type,$q_number,$q_text)=split(/\|/,$rec_pc);
if ($type eq "Q") {
$w_number=$start_num + $q_number;

$zz_qestions = qq^
<row>
<qid><![CDATA[$w_number]]></qid>
<gid><![CDATA[69]]></gid>
<type><![CDATA[$a_type]]></type>
<title><![CDATA[Q$w_number]]></title>
<question><![CDATA[$q_text]]></question>
<other><![CDATA[N]]></other>
<mandatory><![CDATA[Y]]></mandatory>
<question_order><![CDATA[1]]></question_order>
<language><![CDATA[$default_lang]]></language>
<scale_id><![CDATA[0]]></scale_id>
<same_default><![CDATA[0]]></same_default>
<relevance><![CDATA[1]]></relevance>
</row>^;
$write_line_Q = "$write_line_Q$zz_qestions";
$zz_attr = qq^
<row>
<qid><![CDATA[$w_number]]></qid>
<attribute><![CDATA[random_order]]></attribute>
<value><![CDATA[1]]></value>
</row>^;
$write_line_attr = "$write_line_attr$zz_attr";
$lcount=1;
}
if ($type eq "A") {
$zz_answer = qq^
<row>
<qid><![CDATA[$w_number]]></qid>
<code><![CDATA[A$lcount]]></code>
<answer><![CDATA[$q_text]]></answer>
<assessment_value><![CDATA[0]]></assessment_value>
<sortorder><![CDATA[$lcount]]></sortorder>
<language><![CDATA[$default_lang]]></language>
<scale_id><![CDATA[0]]></scale_id>
</row>^;
$write_line_answer = "$write_line_answer$zz_answer";
$lcount++;

}



############################################
}


print qq^<?xml version="1.0" encoding="UTF-8"?>
<document>
<LimeSurveyDocType>Group</LimeSurveyDocType>
<DBVersion>164</DBVersion>
<languages>
<language>ru</language>
</languages>
<groups>
<fields>
<fieldname>gid</fieldname>
<fieldname>group_name</fieldname>
<fieldname>language</fieldname>
</fields>
<rows>
<row>
<gid><![CDATA[69]]></gid>
<group_name><![CDATA[GROUP_NAME]]></group_name>
<language><![CDATA[$default_lang]]></language>
</row>
</rows>
</groups>
<questions>
<fields>
<fieldname>qid</fieldname>
<fieldname>gid</fieldname>
<fieldname>type</fieldname>
<fieldname>title</fieldname>
<fieldname>question</fieldname>
<fieldname>other</fieldname>
<fieldname>mandatory</fieldname>
<fieldname>question_order</fieldname>
<fieldname>language</fieldname>
<fieldname>scale_id</fieldname>
<fieldname>same_default</fieldname>
<fieldname>relevance</fieldname>
</fields>
<rows>
^;

print $write_line_Q;
print qq^
</rows>
</questions>
^;
print qq^<answers>
<fields>
<fieldname>qid</fieldname>
<fieldname>code</fieldname>
<fieldname>answer</fieldname>
<fieldname>assessment_value</fieldname>
<fieldname>sortorder</fieldname>
<fieldname>language</fieldname>
<fieldname>scale_id</fieldname>
</fields>
<rows>
^;
print $write_line_answer;
print qq^
</rows>
</answers>
<question_attributes>
<fields>
<fieldname>qid</fieldname>
<fieldname>attribute</fieldname>
<fieldname>value</fieldname>
<fieldname>language</fieldname>
</fields>
<rows>^;
print $write_line_attr;
print qq^
</rows>
</question_attributes>
</document>
^;
Anhang:
Letzte Änderung: 1 Jahr 4 Monate her von Rostik.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Ladezeit der Seite: 0.157 Sekunden
Donation Image