Benim Ubuntu 15 dbf dosyaları açmak gerekiyor ve LibreOffice bunu yapabilir bulundu. Ama alıyorum
Genel hata. Genel giriş / çıkış hatası.
Bana yardımcı olabilecek herhangi bir araç veya yerleşik bir yazılım aracı var mı?
Benim Ubuntu 15 dbf dosyaları açmak gerekiyor ve LibreOffice bunu yapabilir bulundu. Ama alıyorum
Genel hata. Genel giriş / çıkış hatası.
Bana yardımcı olabilecek herhangi bir araç veya yerleşik bir yazılım aracı var mı?
Yanıtlar:
LibreOffice Wiki'ye göre, .dbfdosyaları LibreOffice Base ile açabilmelisiniz .
Bu sorunla karşılaşmaya devam ediyorsanız LibreOffice'i yeniden yükleyin:
sudo apt-get remove --purge libreoffice*
sudo apt-get clean
sudo apt-get autoremove
sudo apt-get install libreoffice
Dosyaları dbviewaçmak için de kullanabilirsiniz .dbf(LibreOffice Base'den daha zor olabilir):
sudo apt-get install dbview
Hakkında daha fazla bilgi için kılavuz sayfasına bakınız dbview.
Küçük .dbf dosyalarının çok basit bir şekilde düzenlenmesi için GTK DBF Editör'ü de kullanabilirsiniz.
Ubuntu 12.04'e kurmak için önce bu bağımlılığı yüklemem gerekiyordu:
sudo apt-get install libglade2-0:i386
Sonra indirilen .deb dosyasını
sudo dpkg -i Downloads/gtkdbfeditor_1.0.4-7_i386.deb
Güncelleme:
Ubuntu 16.04'te, LibreOffice'in varsayılan yüklemesi ile,
sudo apt install libreoffice-base
Ardından, .dbf dosyaları LibreOffice Calc içinde açılabilir ve .dbf olarak kaydedilebilir.
.Dbf dosyaları ile başa çıkmak için en iyi yolu bulduk onları .csv dosyalarına dönüştürmek için PHP kullanmaktır:
<?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 );
}
?>
Ardından CSV'yi içe aktarmak için MySQL kullanın:
LOAD DATA INFILE "/media/d/Data2/files/ZACATECAS.csv" INTO TABLE tbl FIELDS TERMINATED BY ";" ENCLOSED BY '"' LINES TERMINATED BY "\n";