TRegexp::TRegexp(const tchar * str) { gen_pattern( str ); }
TRegexp & TRegexp::operator = ( const tchar *cp ) { delete the_pattern; gen_pattern( cp ); return *this; }
/**************************************************** * mmcsd_write executa a escrita bufferizada do cartao * sd * * @param address - endereco qual se quer escrever * @param *data - vetor de dados a ser escrito * @param size - tamanho do vetor * @return TRUE se sucesso, FALSE se erro */ short mmcsd_write(long long address, int *data, long size) { int read_out[MMCSD_MAX_BLOCK_SIZE] = { 0 }, r; long block, offset, cont, acum, qtd; block = (long) (address / MMCSD_MAX_BLOCK_SIZE); offset = (long) (address - (block * MMCSD_MAX_BLOCK_SIZE)); if ((offset + size) <= MMCSD_MAX_BLOCK_SIZE) { r = mmcsd_read_card(block, read_out, MMCSD_MAX_BLOCK_SIZE); if (!r) return FALSE; for (cont = 0; cont < size; ++cont) { read_out[cont + offset] = data[cont]; } r = mmcsd_write_card(block, read_out, MMCSD_MAX_BLOCK_SIZE); if (!r) return FALSE; } else { acum = 0; qtd = MMCSD_MAX_BLOCK_SIZE - offset; do { #ifdef USE_SPI r = mmcsd_read_card(block, read_out, MMCSD_MAX_BLOCK_SIZE); #else r = gen_pattern(read_out, MMCSD_MAX_BLOCK_SIZE, 0); #endif if (!r) return FALSE; for (cont = 0; cont < qtd; ++cont) { read_out[cont + offset] = data[acum]; acum++; } #ifdef USE_SPI r = mmcsd_write_card(block, read_out, MMCSD_MAX_BLOCK_SIZE); if (!r) return FALSE; #else print_arr(address, read_out, MMCSD_MAX_BLOCK_SIZE); #endif block++; offset = 0; if (acum + MMCSD_MAX_BLOCK_SIZE > size) { qtd = size - acum; } else { qtd = MMCSD_MAX_BLOCK_SIZE; } } while (acum < size); } return TRUE; }