Ir para conteúdo
Fórum Script Brasil
  • 0

Problema Com Classe


Guest Alex Lugon

Pergunta

Guest Alex Lugon

Gostaria de saber como montar um classe.

Tipo tenho um arquivo TXT, abaixo segue uma pequena demonstração.

o conteudo do Arquivo:

0000 0000000000000000

0000 0000000000000000

000U 0000018062006000

0101 0100101010100101

000U 0000019062006000

000U 0000020062006000

000U 0000021062006000

0000 0010010101010010

Gostaria de pegar os valores que estão entre a posição 11 e 18, ATENÇÂO somente os que tiverem os seguimento (U) na linha:

Linha 1 -> 18062006

Linha 2 -> 19062006

Linha 3 -> 20062006

Linha 4 -> 21062006

Eu tentei fazer dessa forma mas não deu certo:

<?php
class RetLeitura{
var $filename;
var $buffer;
var $linha;

//Processa o caminho para saber se e FALSE
function processa($url){
$this->filename = fopen($url, "r" );

if ($this->filename) {
$i++;
while (!feof($this->filename)){
$this->buffer = trim(fgets($this->filename, 4095));
$this->linha[$i] = $this->buffer;
$i++; 
}
fclose($this->filename);
}else{
die("O arquivo não foi encontrado"); 
}
}
//Mostra a data do Credito
function dataCredito(){
$i=0;
foreach ($this->linha as $key) {
$key1 = $key;
$seguimento = substr($key, 13, 1);

if ($seguimento == "U"){
$dataP = substr($key1, 145,8);
return $dataP;
$seguimento = NULL;
unset($seguimento);
}
}
}



}
?>

Onde estou errando?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

está errando na construcão das substrings, percebe a posicão de U e da data na string lida

<?php
class RetLeitura{
var $filename;
var $buffer;
var $linha;

//Processa o caminho para saber se e FALSE
function processa($url){
     $this->filename = fopen($url, "r" );

     if ($this->filename) {
      $i=0;
          while (!feof($this->filename)){
               $this->buffer = trim(fgets($this->filename, 4095));
               $this->linha[$i] = $this->buffer;
               $i++;
          }
          fclose($this->filename);
     }else{
     die("O arquivo não foi encontrado");
     };
}

//Mostra a data do Credito
function dataCredito(){
     $i=0;
     foreach ($this->linha as $key) {
          $key1 = $key;
          $seguimento = substr($key, 3, 1);  //posicao 3, tamanho 1
          if ($seguimento == "U"){
               $dataP = substr($key1, 10,8); //posicao 10, tamanho 8
               echo $dataP; //printei na tela, para varrer todo o array
               echo "<br>";
               $seguimento = NULL;
               unset($seguimento);
          }
     }
     //print_r($this->linha);
}



}

$teste=new RetLeitura;
$teste->processa("./teste.txt");
echo $teste->dataCredito();
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Muito Obrigado, mas é quase isso, eu queria que o resultado retornasse dentro de um array tipo.

$data = $LerRetorno->dataCredito();

e $data seria um array.

Então eu processaria esse resultado para a verificação.

Será poderia me explicar como posso fazer isso?

Desde já os meus agradecimentos.

Fico muito grato.

Link para o comentário
Compartilhar em outros sites

  • 0
<?php
class RetLeitura{
var $filename;
var $buffer;
var $linha;

//Processa o caminho para saber se e FALSE
function processa($url){
     $data=array();
     $this->filename = fopen($url, "r" );

     if ($this->filename) {
      $i=0;
          while (!feof($this->filename)){
               $this->buffer = trim(fgets($this->filename, 4095));
               $this->linha[$i] = $this->buffer;
               $i++;
          }
          fclose($this->filename);
     }else{
     die("O arquivo não foi encontrado");
     };
}

//Mostra a data do Credito
function dataCredito(){
     $i=0;
     foreach ($this->linha as $key) {
          $key1 = $key;
          $seguimento = substr($key, 3, 1);
          if ($seguimento == "U"){
               $dataP = substr($key1, 10,8);
               //echo $dataP;
               //echo "<br>";
               $data[$i]=$dataP;
               //array_push($this->data, $dataP);
               $seguimento = NULL;
               unset($seguimento);
               $i++;
          }
     }
     return $data;
}



}
$datas=array();
$teste=new RetLeitura;
$teste->processa("./teste.txt");
$datas=$teste->dataCredito();
print_r($datas);
?>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...