मुझे अपने Ubuntu 15 पर dbf फाइलें खोलने की जरूरत है और जैसा कि मैंने पाया कि लिबरऑफिस ऐसा कर सकता है। लेकिन मुझे मिल रहा है
सामान्य त्रुटि। सामान्य इनपुट / आउटपुट त्रुटि।
क्या कोई उपकरण या अंतर्निहित कुछ सॉफ़्टवेयर उपकरण है जो मेरी मदद कर सकता है?
मुझे अपने Ubuntu 15 पर dbf फाइलें खोलने की जरूरत है और जैसा कि मैंने पाया कि लिबरऑफिस ऐसा कर सकता है। लेकिन मुझे मिल रहा है
सामान्य त्रुटि। सामान्य इनपुट / आउटपुट त्रुटि।
क्या कोई उपकरण या अंतर्निहित कुछ सॉफ़्टवेयर उपकरण है जो मेरी मदद कर सकता है?
जवाबों:
लिब्रे ऑफिस विकी के अनुसार आपको .dbfलिब्रे ऑफिस बेस के साथ फाइल खोलने में सक्षम होना चाहिए ।
यदि आप अभी भी इस समस्या का सामना कर रहे हैं, तो LibreOffice को पुनर्स्थापित करें:
sudo apt-get remove --purge libreoffice*
sudo apt-get clean
sudo apt-get autoremove
sudo apt-get install libreoffice
आप फ़ाइलों dbviewको खोलने के लिए भी उपयोग कर सकते हैं .dbf(जो लिबरऑफिस बेस की तुलना में उपयोग करना कठिन हो सकता है):
sudo apt-get install dbview
अधिक जानकारी के लिए मैनपेज देखें dbview।
छोटी .dbf फ़ाइलों के बहुत सरल संपादन के लिए, आप GTK DBF संपादक का भी उपयोग कर सकते हैं
इसे Ubuntu 12.04 में स्थापित करने के लिए, मुझे पहली बार इस निर्भरता को स्थापित करने की आवश्यकता है:
sudo apt-get install libglade2-0:i386
तब मैं डाउनलोड की गई .deb फ़ाइल को इंस्टॉल कर सकता था
sudo dpkg -i Downloads/gtkdbfeditor_1.0.4-7_i386.deb
अपडेट करें:
Ubuntu 16.04 में, लिबरऑफिस की डिफ़ॉल्ट स्थापना के साथ, मुझे भी करना पड़ा
sudo apt install libreoffice-base
फिर, .dbf फाइलें LibreOffice Calc में खोली जा सकती हैं, और .dbf के रूप में भी सहेजा जा सकता है।
मुझे .dbf फ़ाइलों से निपटने का सबसे अच्छा तरीका मिल गया है। PHP का उपयोग उन्हें .csv फ़ाइलों में बदलने के लिए किया जाता है:
<?php
set_time_limit( 24192000 );
ini_set( 'memory_limit', '-1' );
$files = glob( '/media/d/Data2/files/*.DBF' );
foreach( $files as $file )
{
echo "Processing: $file\n";
$fileParts = explode( '/', $file );
$endPart = $fileParts[key( array_slice( $fileParts, -1, 1, true ) )];
$csvFile = preg_replace( '~\.[a-z]+$~i', '.csv', $endPart );
if( !$dbf = dbase_open( $file, 0 ) ) die( "Could not connect to: $file" );
$num_rec = dbase_numrecords( $dbf );
$num_fields = dbase_numfields( $dbf );
$fields = array();
$out = '';
for( $i = 1; $i <= $num_rec; $i++ )
{
$row = @dbase_get_record_with_names( $dbf, $i );
$firstKey = key( array_slice( $row, 0, 1, true ) );
foreach( $row as $key => $val )
{
if( $key == 'deleted' ) continue;
if( $firstKey != $key ) $out .= ';';
$out .= trim( $val );
}
$out .= "\n";
}
file_put_contents( $csvFile, $out );
}
?>
फिर CSV आयात करने के लिए MySQL का उपयोग करें:
LOAD DATA INFILE "/media/d/Data2/files/ZACATECAS.csv" INTO TABLE tbl FIELDS TERMINATED BY ";" ENCLOSED BY '"' LINES TERMINATED BY "\n";