Click here to Skip to main content
15,896,453 members
Home / Discussions / Web Development
   

Web Development

 
QuestionMVC PostBackURL Pin
AghaKhan20-Jun-12 19:52
AghaKhan20-Jun-12 19:52 
SuggestionRe: MVC PostBackURL Pin
Sandeep Mewara21-Jun-12 17:28
mveSandeep Mewara21-Jun-12 17:28 
GeneralRe: MVC PostBackURL Pin
AghaKhan21-Jun-12 21:19
AghaKhan21-Jun-12 21:19 
Questionfrom .dbf FoxPro to MySql Pin
Susy Nainggolan18-Jun-12 18:16
Susy Nainggolan18-Jun-12 18:16 
AnswerRe: from .dbf FoxPro to MySql Pin
enhzflep18-Jun-12 18:58
enhzflep18-Jun-12 18:58 
GeneralRe: from .dbf FoxPro to MySql Pin
Susy Nainggolan18-Jun-12 21:00
Susy Nainggolan18-Jun-12 21:00 
GeneralRe: from .dbf FoxPro to MySql Pin
enhzflep18-Jun-12 21:18
enhzflep18-Jun-12 21:18 
GeneralRe: from .dbf FoxPro to MySql Pin
Susy Nainggolan18-Jun-12 22:42
Susy Nainggolan18-Jun-12 22:42 
heheheh..thanx Sir..
this is the code Sir..
I don't know where is the wrong code,
because I think it's already right n it have used by another person n when I just try I can't..

sorry if u feel bothered.. Smile | :)

PHP
<?php

class dbf_class {

var $dbf_num_rec; //Number of records in the file
var $dbf_num_field; //Number of columns in each row
var $dbf_names = array(); //Information on each column ['name'],['len'],['type']
//These are private....
var $_raw; //The raw input file
var $_rowsize; //Length of each row
var $_hdrsize; //Length of the header information (offset to 1st record)
var $_memos; //The raw memo file (if there is one).

function dbf_class($filename) {
if (!file_exists($filename)) {
echo "<script>alert('Masukkan data DBF')</script>";
} else {
$handle = fopen($filename, "r");
}
if (!$handle) {
echo "Cannot read DBF file";
}
$filesize = filesize($filename);
$this->_raw = fread($handle, $filesize);
fclose($handle);
//Make sure that we indeed have a dbf file...
// if(!(ord($this->_raw[0]) == 3 || ord($this->_raw[0]) == 131) && ord($this->_raw[$filesize]) != 26) {
// echo 'ukurun tidak tepat !!!'; exit;
// }
// 3= file without DBT memo file; 131 ($83)= file with a DBT.
$arrHeaderHex = array();
for ($i = 0; $i < 32; $i++) {
$arrHeaderHex[$i] = str_pad(dechex(ord($this->_raw[$i])), 2, "0", STR_PAD_LEFT);
}
//Initial information
$line = 32; //Header Size
//Number of records
$this->dbf_num_rec = hexdec($arrHeaderHex[7] . $arrHeaderHex[6] . $arrHeaderHex[5] . $arrHeaderHex[4]);
$this->_hdrsize = hexdec($arrHeaderHex[9] . $arrHeaderHex[8]); //Header Size+Field Descriptor
//Number of fields
$this->_rowsize = hexdec($arrHeaderHex[11] . $arrHeaderHex[10]);
$this->dbf_num_field = floor(($this->_hdrsize - $line ) / $line); //Number of Fields
//Field properties retrieval looping
for ($j = 0; $j < $this->dbf_num_field; $j++) {
$name = '';
$beg = $j * $line + $line;
for ($k = $beg; $k < $beg + 11; $k++) {
if (ord($this->_raw[$k]) != 0) {
$name .= $this->_raw[$k];
}
}
$this->dbf_names[$j]['name'] = $name; //Name of the Field
$this->dbf_names[$j]['len'] = ord($this->_raw[$beg + 16]); //Length of the field
$this->dbf_names[$j]['type'] = $this->_raw[$beg + 11];
}
if (ord($this->_raw[0]) == 131) { //See if this has a memo file with it...
//Read the File
$tail = substr($tail, -1, 1); //Get the last character...
if ($tail == 'F') { //See if upper or lower case
$tail = 'T'; //Keep the case the same
} else {
$tail = 't';
}
$memoname = substr($filename, 0, strlen($filename) - 1) . $tail;
$handle = fopen($memoname, "r");
if (!$handle) {
echo "Cannot read DBT file";
exit;
}
$filesize = filesize($memoname);
$this->_memos = fread($handle, $filesize);
fclose($handle);
}
}

function getRow($recnum) {
$memoeot = chr(26) . chr(26);
$rawrow = substr($this->_raw, $recnum * $this->_rowsize + $this->_hdrsize, $this->_rowsize);
$rowrecs = array();
$beg = 1;
if (ord($rawrow[0]) == 42) {
return false; //Record is deleted
}
for ($i = 0; $i < $this->dbf_num_field; $i++) {
$col = trim(substr($rawrow, $beg, $this->dbf_names[$i]['len']));
if ($this->dbf_names[$i]['type'] != 'M') {
$rowrecs[] = $col;
} else {
$memobeg = $col * 512; //Find start of the memo block (0=header so it works)
$memoend = strpos($this->_memos, $memoeot, $memobeg); //Find the end of the memo
$rowrecs[] = substr($this->_memos, $memobeg, $memoend - $memobeg);
}$beg+=$this->dbf_names[$i]['len'];
}
return $rowrecs;
}

function getRowAssoc($recnum) {
$rawrow = substr($this->_raw, $recnum * $this->_rowsize + $this->_hdrsize, $this->_rowsize);
$rowrecs = array();
$beg = 1;
if (ord($rawrow[0]) == 42) {
return false; //Record is deleted...
}
for ($i = 0; $i < $this->dbf_num_field; $i++) {
$col = trim(substr($rawrow, $beg, $this->dbf_names[$i]['len']));
if ($this->dbf_names[$i]['type'] != 'M') {
$rowrecs[$this->dbf_names[$i]['name']] = $col;
} else {
$memobeg = $col * 512; //Find start of the memo block (0=header so it works)
$memoend = strpos($this->_memos, $memoeot, $memobeg); //Find the end of the memo
$rowrecs[$this->dbf_names[$i]['name']] = substr($this->_memos, $memobeg, $memoend - $memobeg);
}
$beg+=$this->dbf_names[$i]['len'];
}
return $rowrecs;
}

}

?>

GeneralRe: from .dbf FoxPro to MySql Pin
enhzflep18-Jun-12 23:37
enhzflep18-Jun-12 23:37 
GeneralRe: from .dbf FoxPro to MySql Pin
Susy Nainggolan18-Jun-12 23:46
Susy Nainggolan18-Jun-12 23:46 
GeneralRe: from .dbf FoxPro to MySql Pin
enhzflep18-Jun-12 23:57
enhzflep18-Jun-12 23:57 
Questionweb service + soap+ xml Pin
moiamal18-Jun-12 2:52
moiamal18-Jun-12 2:52 
AnswerRe: web service + soap+ xml Pin
Sandeep Mewara18-Jun-12 19:58
mveSandeep Mewara18-Jun-12 19:58 
AnswerMessage Closed Pin
19-Jun-12 0:21
moiamal19-Jun-12 0:21 
SuggestionRe: web service + soap+ xml Pin
Rahul Rajat Singh26-Jun-12 0:50
professionalRahul Rajat Singh26-Jun-12 0:50 
GeneralRe: web service + soap+ xml Pin
moiamal26-Jun-12 1:17
moiamal26-Jun-12 1:17 
Questionmysql format number Pin
Jassim Rahma18-Jun-12 2:52
Jassim Rahma18-Jun-12 2:52 
AnswerRe: mysql format number Pin
Bernhard Hiller18-Jun-12 4:16
Bernhard Hiller18-Jun-12 4:16 
QuestionHelp Vadim Segal To Create Contact Us Form For The Website Pin
VadimSegal17-Jun-12 21:40
VadimSegal17-Jun-12 21:40 
QuestionA .Net ligth-weight REST server framework Pin
CodingBruce16-Jun-12 6:08
CodingBruce16-Jun-12 6:08 
QuestionAttendance system in asp.net Pin
Ajit001016-Jun-12 1:45
Ajit001016-Jun-12 1:45 
AnswerRe: Attendance system in asp.net Pin
Sandeep Mewara16-Jun-12 3:09
mveSandeep Mewara16-Jun-12 3:09 
Questionredirect based on language Pin
Jassim Rahma14-Jun-12 5:10
Jassim Rahma14-Jun-12 5:10 
AnswerRe: redirect based on language Pin
Gerben Jongerius14-Jun-12 20:29
Gerben Jongerius14-Jun-12 20:29 
Questiontab in CodeIgniter Pin
Susy Nainggolan13-Jun-12 21:44
Susy Nainggolan13-Jun-12 21:44 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.