Java: receber um arquivo de configurações e printar um automato

Eu estou fazendo um programinha que recebe um arquivo de texto com parametros de um automato não determinístico, a partir dele são criadas regras para esse automato, com ifs para onde deverá ir cada estado. Entanto no fim deverei montar um automato e printar toda a árvore dele. Como poderia fazer essa parte desde print? alguma ideia de que pelo que buscar?

Leitura de arquivo TXT largura fixa

onde trabalho passaremos a receber diariamente um único arquivo de 50.000 a 300.000 registros (inicialmente). Estes registros deverão ser carregados para diversas tabelas do nosso DB (SqlServer). A minha duvida é, qual a melhor forma de carregar estes arquivos para a base de dados, utilizar o próprio banco ou o nosso CRM para ler este arquivo? O arquivo possui os campos delimitados por largura fixa e a nossa aplicação é desenvolvida internamente e em Java. Só mais uma coisa, de acordo com a área de negocios da empresa, este arquivo poderá facilmente chegar a mais de 1.000.000 de registros/dia, ou seja, o processo de leitura deverá ser algo rápido.

Duplicando a escrita no arquivo com php

Estou implementando uma classe FileImpl que contém um método write. Porém, no momento que vou escrever, parece que o request é duplicado. Ou seja, se eu tentar adicionar 1 data, como no exemplo abaixo…

$  file = new FileImpl('log.txt'); $  file->write(date('d/m/Y H:i:s')); 

Eu tenho esse resultado na minha saída da escrita do arquivo:

Exemplo de saída:

16/04/2019 04:47:58 16/04/2019 04:47:58 16/04/2019 04:54:55 16/04/2019 04:54:55 

Realmente, não sei onde o erro se encontra. Veja a implementação da minha classe:

 class FileImpl {    private $  diretory;   private $  fileName;    public function __construct(string $  fileName, string $  directory = NULL) {     $  this->fileName = $  fileName;     if ($  directory != NULL)       $  this->diretory = $  directory . date('dMY');   }    public function write($  data) : void {     if (!$  this->diretory) {       $  file = fopen($  this->fileName, 'a+');       echo "Arquivo criado sem diretorio\n";     } else {         if (!is_dir($  this->diretory)) {           mkdir($  this->diretory);         }         $  file = fopen($  this->diretory . DIRECTORY_SEPARATOR . $  this->fileName, 'a+');         echo "Arquivo criado com diretorio\n";     }     fwrite($  file, $  data."\r\n");     fclose($  file);   }  }  

Minha function de download corrompendo o arquivo

Eu criei uma function de download mas ela ta corrompendo os arquivos e eu não consigo encontrar o motivo! Baixa normalmente, mas quando eu vou abrir o arquivo ele informa que o arquivo ta em um formato desconhecido ou danificado.

 public function download($  token, $  renomear) {     $  local_file = 'download/'.$  token.'.zip';     $  download_file = $  renomear.'.zip';      // set the download rate limit (=> 20,5 kb/s)     $  download_rate = 20.5;     if(file_exists($  local_file) && is_file($  local_file))     {         header('Cache-control: private');         header('Content-Type: application/octet-stream');         header('Content-Length: '.filesize($  local_file));         header('Content-Disposition: filename='.$  download_file);         header('Connection: Close');          flush();         $  file = fopen($  local_file, "r");         while(!feof($  file))         {             // send the current file part to the browser             print fread($  file, round($  download_rate * 1024));             // flush the content to the browser             flush();             // sleep one second             sleep(1);         }         fclose($  file);}     else {         $  pdo = new PDO\Database();         $  insertStatement = $  pdo->insert(array(             "item_token" => $  token,             "valor" => "Erro: o arquivo não existe!"         ))         ->into("file_log");         $  insertStatement->execute();         header("Refresh: 0");         die();     } } 

Ler a primeira linha de um arquivo txt

Estou com problema no meu programa para ler um arquivo. No arquivo as linhas são gravadas dessa forma “Titulo;Gênero;Ano”, contudo eu quero comparar apenas o Título com o que o usuário irá digitar. O problema está quando ele compara a primeira linha do arquivo o código por algum motivo diz que eles não são iguais, mesmo sendo idênticos. Não sei se ficou muito claro meu problema. Mas quem puder me ajudar agradeço.

public String lerSeries(String titulo) {     File serie = new File("serie.txt");     try {         FileReader fr = new FileReader(serie);         BufferedReader br = new BufferedReader(fr);         String linha;         String aux;         s.setTitulo(titulo);         try {             while ((linha = br.readLine()) != null) {                 aux = linha.split(";")[0];                 if(aux.equals(s.getTitulo())){                     System.out.println(linha);                 }             }         } catch (IOException ioe) {             ioe.printStackTrace();         }     } catch (FileNotFoundException fnf) {         fnf.printStackTrace();     }     return null; } 

Usando Nlog para criar arquivo de Log. Apos criar pacotes de bootstrapper e usá-lo para instalar em minha maquina arquivo de log não é gerado

Meu arquivo NLog.config:

<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       throwExceptions="true">    <targets>     <target name="logfile" xsi:type="File" fileName="$  {basedir}/log.txt" />     <target name="logconsole" xsi:type="Console" />   </targets>    <rules>     <logger name="*" minlevel="Info" writeTo="logconsole" />     <logger name="*" minlevel="Debug" writeTo="logfile" />   </rules> </nlog>

OBS 1: Ja testei variações desse arquivo e não há resultados.

OBS 2: Executando o aplicativo pelo visual studio o log funciona adequadamente.

Minhas configurações estão

Ação de Copilação : Conteúdo

Copiar para o diretório : Copiar sempre

Apagar arquivo definitivamente do Intellij

Criei um arquivo File do tipo Text quando deveria ser um arquivo .py. Depois de tentar renomear o arquivo para .py ou excluí-lo a IDE não consegue identificar a extensão, não identando o meu código. Como faço para criar um arquivo com esse mesmo nome mas com a extensão correta?

Obs. Já tentei deletar o arquivo com Safe delete (ALT + del)

Pegar url da página que chamou o arquivo com jquery .load();

Tenho uma função PHP:

if( !function_exists('site_url_full') ) {     function site_url_full() {         $  protocol = (!empty($  _SERVER['HTTPS']) && $  _SERVER['HTTPS'] !== 'off' || $  _SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";         $  PHPSELF = $  _SERVER['PHP_SELF'];         $  path = pathinfo( $  PHPSELF );         $  diretorio = $  path['dirname'];         $  diretorio = "";         if(is_dir(PATH)) {             $  url = $  protocol . $  _SERVER['HTTP_HOST'] . $  diretorio;         } else {             $  url = $  protocol . $  _SERVER['HTTP_HOST'];         }         return $  url . $  _SERVER['REQUEST_URI'];     } } 

Uso para ‘pegar’ a URL completa da página mas quando ela é chamada dentro de um arquivo que é chamado em um evento com jQuery .load(); a URL pega é a do arquivo, não sei como fazer para chamar a URL que chamou o arquivo, e preciso que essa função seja executada dentro do arquivo carregado na principal em tempo de execução, tem algum modo para pegar a principal? Pois a URL é inclusa dentro de um input*hidden do arquivo requisitado.

Filtros em arquivo TXT

Boa noite pessoal. Sou novo no python e se possível gostaria de uma ajuda de vocês. Tenho um arquivo TXT que tenho que aplicar um fitro para me trazer um campo na coluna 2. E depois salvar o resultado em csv, pois assim fica mais facil de mexer.
Só que está muito dificil manipular os dados txt. Até agora só conseguir abrir o arquivos sem a linha 1(pois é um cabeçalho inutil).
Utilizei o código:

trecho = open('exemplo.txt', 'r').read().splitlines()[1:5] print(trecho)

o Conteudo do arquivo txt é RH NEG 2018-11-13 2018-11-13 002095584 2018-11-13;heberteste ;0000000010; 000000000128.950000;000000000000000002;09:52:04.625;1;2018-11-13;000006816341074;000000000513284;2;2018-11-13;000006816341042;000000000513285;2;0;00000088;00001130 2018-11-13;heberteste ;0000000070; 000000000128.500000;000000000000000001;10:29:29.292;1;2018-11-13;000006816341437;000000000524369;2;2018-11-13;000006816341463;000000000524370;1;0;00000003;00000107 2018-11-13;heberteste ;0000000090; 000000000128.500000;000000000000000001;10:34:28.447;1;2018-11-13;000006816341499;000000000526119;2;2018-11-13;000006816341500;000000000526120;1;0;00000088;00000107 2018-11-13;heberteste ;0000000100; 000000000128.050000;000000000000000001;10:43:51.211;1;2018-11-13;000006816341514;000000000530164;2;2018-11-13;000006816341319;000000000530165;1;0;00000088;00000107 2018-11-13;heberteste ;0000000130; 000000000128.400000;000000000000000001;11:20:18.817;1;2018-11-13;000006816341940;000000000545815;1;2018-11-13;000006816341855;000000000545816;2;0;00000088;00000003 2018-11-13;heberteste ;0000000150; 000000000127.600000;000000000000000002;11:36:13.283;1;2018-11-13;000006816342069;000000000554070;2;2018-11-13;000006816342139;000000000554071;1;0;00000107;00000003 2018-11-13;heberteste ;0000000190; 000000000128.000000;000000000000000001;11:51:35.790;1;2018-11-13;000006816342313;000000000559841;1;2018-11-13;000006816342289;000000000559842;2;0;00000088;00000107 2018-11-13;heberteste ;0000000200; 000000000128.000000;000000000000000001;11:54:43.262;1;2018-11-13;000006816342357;000000000561090;1;2018-11-13;000006816342289;000000000561091;2;0;00000088;00000107 2018-11-13;heberteste ;0000000210; 000000000127.600000;000000000000000001;12:59:21.065;1;2018-11-13;000006816342824;000000000594427;2;2018-11-13;000006816342851;000000000594428;1;0;00000003;00000088 2018-11-13;heberteste ;0000000230; 000000000127.400000;000000000000000001;13:01:31.207;1;2018-11-13;000006816340294;000000000595852;2;2018-11-13;000006816342866;000000000595853;1;0;00000003;00000115 2018-11-13;heberteste ;0000000240; 000000000127.400000;000000000000000001;13:04:39.951;1;2018-11-13;000006816340294;000000000599434;2;2018-11-13;000006816342893;000000000599435;1;0;00000003;00000088 2018-11-13;heberteste ;0000000250; 000000000127.400000;000000000000000003;13:05:28.547;1;2018-11-13;000006816340294;000000000600457;2;2018-11-13;000006816342872;000000000600458;1;0;00000003;00000115 2018-11-13;heberteste ;0000000260; 000000000127.400000;000000000000000003;13:05:28.672;1;2018-11-13;000006816340294;000000000600485;2;2018-11-13;000006816342902;000000000600486;1;0;00000003;00000115 2018-11-13;heberteste ;0000000270; 000000000127.400000;000000000000000003;13:05:28.796;1;2018-11-13;000006816340294;000000000600492;2;2018-11-13;000006816342903;000000000600493;1;0;00000003;00000115 2018-11-13;heberteste ;0000000280; 000000000127.400000;000000000000000003;13:05:46.409;1;2018-11-13;000006816340294;000000000600796;2;2018-11-13;000006816342913;000000000600797;1;0;00000003;00000088 2018-11-13;heberteste ;0000000290; 000000000127.400000;000000000000000002;13:06:18.642;1;2018-11-13;000006816340294;000000000601431;2;2018-11-13;000006816342929;000000000601432;1;0;00000003;00000115 2018-11-13;heberteste ;0000000300; 000000000127.400000;000000000000000014;13:06:46.037;1;2018-11-13;000006816340294;000000000601863;2;2018-11-13;000006816342935;000000000601864;1;0;00000003;00000107 2018-11-13;heberteste ;0000000310; 000000000127.250000;000000000000000001;13:07:57.548;1;2018-11-13;000006816341631;000000000602867;2;2018-11-13;000006816342951;000000000602868;1;0;00000093;00000088 2018-11-13;heberteste ;0000000320; 000000000127.250000;000000000000000001;13:09:32.861;1;2018-11-13;000006816342972;000000000604269;1;2018-11-13;000006816342952;000000000604270;2;0;00000088;00000107 2018-11-13;heberteste ;0000000340; 000000000127.000000;000000000000000001;13:15:53.290;1;2018-11-13;000006816340152;000000000607368;2;2018-11-13;000006816343014;000000000607369;1;0;00000107;00000088 2018-11-13;heberteste ;0000000350; 000000000127.000000;000000000000000002;13:19:50.193;1;2018-11-13;000006816343049;000000000609663;1;2018-11-13;000006816343028;000000000609664;2;0;00000088;00000107 2018-11-13;heberteste ;0000000360; 000000000127.000000;000000000000000001;13:20:08.604;1;2018-11-13;000006816343051;000000000609944;1;2018-11-13;000006816343028;000000000609945;2;0;00000088;00000107 2018-11-13;heberteste ;0000000380; 000000000126.850000;000000000000000001;13:21:05.820;1;2018-11-13;000006816340130;000000000610730;2;2018-11-13;000006816343057;000000000610731;1;0;00000003;00000088 2018-11-13;heberteste ;0000000370; 000000000126.850000;000000000000000001;13:21:05.820;1;2018-11-13;000006816339968;000000000610728;2;2018-11-13;000006816343057;000000000610729;1;0;00000386;00000088 2018-11-13;heberteste ;0000000390; 000000000127.000000;000000000000000003;13:31:46.062;1;2018-11-13;000006816343123;000000000619774;1;2018-11-13;000006816343028;000000000619775;2;0;00000386;00000107 2018-11-13;heberteste ;0000000420; 000000000126.550000;000000000000000001;13:50:05.252;1;2018-11-13;000006816343212;000000000626737;2;2018-11-13;000006816343285;000000000626738;1;0;00000088;00000386 2018-11-13;heberteste ;0000000430; 000000000126.550000;000000000000000001;13:50:05.252;1;2018-11-13;000006816343055;000000000626739;2;2018-11-13;000006816343285;000000000626740;1;0;00000093;00000386 2018-11-13;heberteste ;0000000450; 000000000127.000000;000000000000000002;14:02:05.847;1;2018-11-13;000006816343394;000000000628566;1;2018-11-13;000006816343028;000000000628567;2;0;00000088;00000107 2018-11-13;heberteste ;0000000540; 000000000126.300000;000000000000000001;14:30:28.815;1;2018-11-13;000006816343723;000000000635848;1;2018-11-13;000006816343718;000000000635849;2;0;00000088;00000115 2018-11-13;heberteste ;0000000550; 000000000126.000000;000000000000000001;14:34:55.147;1;2018-11-13;000006816343326;000000000637084;2;2018-11-13;000006816343784;000000000637085;1;0;00000107;00000088 2018-11-13;heberteste ;0000000560; 000000000126.000000;000000000000000001;14:41:05.046;1;2018-11-13;000006816343815;000000000638801;2;2018-11-13;000006816343127;000000000638802;1;0;00000088;00000003 2018-11-13;heberteste ;0000000580; 000000000126.300000;000000000000000004;14:47:21.562;1;2018-11-13;000006816343899;000000000640855;1;2018-11-13;000006816343761;000000000640856;2;0;00000088;00000003 2018-11-13;heberteste ;0000000590; 000000000126.300000;000000000000000001;14:54:09.132;1;2018-11-13;000006816343951;000000000642905;1;2018-11-13;000006816343946;000000000642906;2;0;00000088;00000003 2018-11-13;heberteste ;0000000600; 000000000126.400000;000000000000000002;14:59:10.618;1;2018-11-13;000006816343989;000000000644134;1;2018-11-13;000006816343728;000000000644135;2;0;00000088;00000003 2018-11-13;heberteste ;0000000610; 000000000126.400000;000000000000000001;15:20:17.042;1;2018-11-13;000006816344163;000000000649842;1;2018-11-13;000006816343728;000000000649843;2;0;00000088;00000003 2018-11-13;heberteste ;0000000630; 000000000126.500000;000000000000000001;15:21:55.894;1;2018-11-13;000006816344179;000000000650262;1;2018-11-13;000006816343736;000000000650263;2;0;00000088;00000003 2018-11-13;heberteste ;0000000640; 000000000126.500000;000000000000000001;15:21:56.494;1;2018-11-13;000006816344180;000000000650266;1;2018-11-13;000006816343736;000000000650267;2;0;00000088;00000003 2018-11-13;heberteste ;0000000650; 000000000126.500000;000000000000000001;15:23:04.480;1;2018-11-13;000006816344191;000000000650624;2;2018-11-13;000006816344194;000000000650625;1;0;00000107;00000088 2018-11-13;heberteste ;0000000690; 000000000127.000000;000000000000000002;16:16:38.956;1;2018-11-13;000006816344708;000000000679240;1;2018-11-13;000006816343028;000000000679241;2;0;00000088;00000107 2018-11-13;heberteste ;0000000870; 000000000127.000000;000000000000000002;16:18:50.473;1;2018-11-13;000006816344803;000000000681511;1;2018-11-13;000006816343028;000000000681512;2;0;00000088;00000107 2018-11-13;heberteste ;0000000880; 000000000127.000000;000000000000000001;16:22:50.396;1;2018-11-13;000006816344725;000000000684797;1;2018-11-13;000006816343028;000000000684798;2;0;00000107;00000107 2018-11-13;heberteste ;0000000900; 000000000127.000000;000000000000000001;16:22:55.429;1;2018-11-13;000006816344991;000000000684858;1;2018-11-13;000006816343028;000000000684859;2;0;00000088;00000107 2018-11-13;heberteste ;0000000890; 000000000127.000000;000000000000000001;16:22:55.429;1;2018-11-13;000006816344991;000000000684856;1;2018-11-13;000006816343028;000000000684857;2;0;00000088;00000107 2018-11-13;heberteste ;0000000910; 000000000127.000000;000000000000000002;16:25:58.087;1;2018-11-13;000006816345164;000000000687581;1;2018-11-13;000006816343028;000000000687582;2;0;00000107;00000107 2018-11-13;CCMX18 ;0000000140; 000000000036.690000;000000000000000001;09:00:30.000;1;2018-11-13;000006816339990;000000000501806;2;2018-11-13;000006816339872;000000000501807;2;0;00000115;00000003 2018-11-13;CCMX18 ;0000000150; 000000000036.660000;000000000000000001;09:03:24.556;1;2018-11-13;000006816339870;000000000502280;2;2018-11-13;000006816340183;000000000502281;1;0;00000003;00000003 2018-11-13;CCMX18 ;0000000180; 000000000036.650000;000000000000000005;09:04:01.483;1;2018-11-13;000006816340201;000000000502377;1;2018-11-13;000006816340183;000000000502378;2;0;00000115;00000003 2018-11-13;CCMX18 ;0000000190; 000000000036.650000;000000000000000001;09:06:31.695;1;2018-11-13;000006816340240;000000000502767;1;2018-11-13;000006816340183;000000000502768;2;0;00000003;00000003 2018-11-13;CCMX18 ;0000000200; 000000000036.700000;000000000000000002;09:10:22.489;1;2018-11-13;000006816340273;000000000503320;1;2018-11-13;000006816339869;000000000503321;2;0;00000003;00000386 2018-11-13;CCMX18 ;0000000210; 000000000036.750000;000000000000000002;09:13:31.894;1;2018-11-13;000006816340301;000000000503716;1;2018-11-13;000006816340285;000000000503717;2;0;00000093;00000010 2018-11-13;CCMX18 ;0000000220; 000000000036.750000;000000000000000001;09:15:54.127;1;2018-11-13;000006816340337;000000000504224;1;2018-11-13;000006816340306;000000000504225;2;0;00000093;00000115 2018-11-13;CCMX18 ;0000000260; 000000000036.800000;000000000000000002;09:18:40.400;1;2018-11-13;000006816340391;000000000505101;1;2018-11-13;000006816339938;000000000505102;2;0;00000115;00000010 2018-11-13;CCMX18 ;0000000250; 000000000036.800000;000000000000000003;09:18:40.400;1;2018-11-13;000006816340391;000000000505099;1;2018-11-13;000006816339884;000000000505100;2;0;00000115;00000115 2018-11-13;CCMX18 ;0000000270; 000000000036.790000;000000000000000002;09:18:54.521;1;2018-11-13;000006816340395;000000000505157;1;2018-11-13;000006816340394;000000000505158;2;0;00000115;00000003 2018-11-13;CCMX18 ;0000000290; 000000000036.830000;000000000000000001;09:21:11.606;1;2018-11-13;000006816340438;000000000505762;1;2018-11-13;000006816340436;000000000505763;2;0;00000003;00000010 2018-11-13;CCMX18 ;0000000520; 000000000036.800000;000000000000000006;09:39:34.837;1;2018-11-13;000006816340915;000000000510252;1;2018-11-13;000006816340559;000000000510253;2;0;00000003;00000058

Obs. No resultado, o delimitador de linhas é ‘, e o delimitador de colunas é ;. Porém só quando jogo o código, que da pra ver o delimitador de linhas ‘ . POr gentileza, conseguem me ajudar?