精华内容
下载资源
问答
  • 分页读功能

    2017-11-03 18:42:52
    mybatis分页读插件,大数据量走分页读查询功能,mybatis分页读插件,大数据量走分页读查询功能
  • EEPROM CAT24CXX实现分页读、写数据

    千次阅读 2021-01-01 17:16:36
    EEPROM CAT24CXX实现分页读、写数据

    目录

    1、CAT24CXX分页读、写数据原理

    2、代码实现


    近日驱动CAT24C08时遇到这样一个问题:

    通常配置数据写入到EEPROM,256个字节基本可满足需求,最近做的一个项目数据量较大,且不确定以后时候还需要增加保存的数据。所以打算使用分页读、写数据,使不同类型的配置数据空间较大一些。

    本项目EEPROM地址使用如下所示:

    • 配置1数据:0Byte~1000Byte;
    • 配置2数据:1001Byte~1100Byte;
    • 配置3数据:1101Byte~1200Byte;
    • 配置4数据:1201Byte~1300Byte。

    这样该如何实现呢?

    1、CAT24CXX分页读、写数据原理

    本博文以CAT24C08为例进行讲解。

    如何实现CAT24C08分页读、写数据,datasheet中有说明很清楚。

    CAT24C08,共有8KB的存储空间,可通过A2、a9和a8,来选择设备地址区域,也就是2^{3}=8个地址区域,每个地址区域有64页,每页16个字节, 故:64X16X8=8192B,也就是8KB。

    A2、a9和a8选择地址区域,数值范围如下表所示:

    A2 a9 a8  
    0 0 0 地址区域0
    0 0 1 地址区域1
    0 1 0 地址区域2
    0 1 1 地址区域3
    1 0 0 地址区域4
    1 0 1 地址区域5
    1 1 0 地址区域6
    1 1 1 地址区域7

    所以,可将配置数据按照以下地址块分配:

    地址区域0
    • 配置1数据:0Byte~1000Byte
    地址区域1
    • 配置2数据:1001Byte~1100Byte
    • 配置3数据:1101Byte~1200Byte
    • 配置4数据:1201Byte~1300Byte

    2、代码实现

    本代码驱动过程并没有什么变化,重点在于处理地址位,一般情况下我们默认使用地址区域0就满足开发需求,现在需要在读、写地址位基础上按位或地址区域

    使用地址区域0的时候,可默认地址位为:0XA0,读、写数据,地址如下所示:

      uint8_t dev_addr_r = dev_addr | 0x01;
      uint8_t dev_addr_w = dev_addr & 0xFE;

    使用地址区域1的时候,可默认地址位为:0XA2,读、写数据,地址如下所示:

      uint8_t dev_addr_r = dev_addr | 0x01;
      uint8_t dev_addr_w = dev_addr & 0xFE;

    以此类推,剩下区域都可以如此操作,然后就可以一页页读写数据了。

    展开全文
  • EasyExcel分页读

    2020-09-15 17:41:10
    https://zhuanlan.zhihu.com/p/96417053
    展开全文
  • java分页读文件方法

    2014-11-16 12:36:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
    public static void readForPage(File sourceFile, int pageNo,int pageSize) throws IOException {  
    		FileReader in = new FileReader(sourceFile);  
    		LineNumberReader reader = new LineNumberReader(in);  
    		String s = "";  
    		/*if (lineNumber <= 0 || lineNumber > getTotalLines(sourceFile)) {  
    		    System.out.println("不在文件的行数范围(1至总行数)之内。");  
    		    System.exit(0);  
    		}  */
    		int startRow = (pageNo - 1) * pageSize + 1;
    		int endRow = pageNo * pageSize;
    		int lines = 0;  
    		System.out.println("startRow:"+startRow);
    		System.out.println("endRow:"+endRow);
    		while (s != null) {  
    		    lines++;  
    		    s = reader.readLine();  
    		    if(lines >= startRow && lines <= endRow) {  
    		        System.out.println("line:"+lines+":"+s);  
    		        //System.exit(0);  
    		    }  
    		}  
    		reader.close();  
    		in.close();  
        }

    这样调用:

    public static void main(String[] args) {  
            // 指定读取的行号  
            int lineNumber = 2;  
              // 读取文件  
              //File sourceFile = new File("D:/java/test.txt");  
            File sourceFile = new File("D://1.txt");  
             
            try {   
            	readForPage(sourceFile, 5, 8);
            } catch (IOException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }  
              
        }


    转载于:https://my.oschina.net/u/1866821/blog/345254

    展开全文
  • jsjson分页通讯录

    2018-08-07 21:01:27
    jsjson分页通讯录,通过JavaScript解析json数据实现分页功能,内含实例,希望对您有所帮助。
  • 内存为什么分页?不分页分页的内存管理有什么区别? 内存为什么分页?不分页分页的内存管理有什么区别? 内存为什么分页?不分页分页的内存管理有什么区别?
  • adodb分页函数初

    千次阅读 2008-05-05 13:17:00
    用了adodb有段时间了,发现还没有对adodb还很不了解,今天特地看了下adodb的分页函数,在此记录下,遗漏或不对的地方希望看到这个文章的朋友们能够指正和讨论。 在adodb中,声明一个对象($obj_db)后,我们就可以...
     
    
    用了adodb有段时间了,发现还没有对adodb还很不了解,今天特地看了下adodb的分页函数,在此记录下,遗漏或不对的地方希望看到这个文章的朋友们能够指正和讨论。
     
    在adodb中,声明一个对象($obj_db)后,我们就可以通过对象来调用pageExecute函数($obj_db->pageExecute($sql,$pagesize,$currentpage,$inputarr, $secs2cache)),一般情况下,都只使用到了前三个参数,后面两个参数都有默认值,可以在需要时传值使用。
     

        
    function &PageExecute($sql, $nrows, $page, $inputarr=false, $secs2cache=0
        {
     
    pageExecute函数:在pageExecute函数里,通过判断全局变量$ADODB_INCLUDED_LIB是否设定,没有设定则包含adodb-lib.inc.php文件。

            
    global $ADODB_INCLUDED_LIB;
            
    if (empty($ADODB_INCLUDED_LIB)) include_once(ADODB_DIR.'/adodb-lib.inc.php');
    判断类成员pageExecuteCountRows,选择调用不同的函数。
    //adodb的默认设置  $pageExecuteCountRows = true;
            
    if ($this->pageExecuteCountRows) $rs =& _adodb_pageexecute_all_rows($this, $sql, $nrows, $page, $inputarr, $secs2cache);
            
    else $rs =& _adodb_pageexecute_no_last_page($this, $sql, $nrows, $page, $inputarr, $secs2cache);
    在这里就说_adodb_pageexecute_all_rows函数吧。在_adodb_pageexecute_all_rows 里调用_adodb_getcount函数,返回影响的记录条数,通过ceil计算总共页数。
        $qryRecs = false//count records for no offset
        
        
    $qryRecs = _adodb_getcount($zthis,$sql,$inputarr,$secs2cache);
        
    $lastpageno = (int) ceil($qryRecs / $nrows);
        
    $zthis->_maxRecordCount = $qryRecs;
    设置一系列变量后,
        // a page number greater than the last page number.
        if ($page >= $lastpageno) {
            
    $page = $lastpageno;
            
    $atlastpage = true;
        }
        
        
    // If page number <= 1, then we are at the first page
        if (empty($page|| $page <= 1) {    
            
    $page = 1;
            
    $atfirstpage = true;
        }
    通过判断变量$secs2cache,使用不同函数。刚刚上面也已经提到,这个$secs2cache是不经常使用的(默认值为0),所以一般调用的函数就是SelectLimit函数。

        
    $offset = $nrows * ($page-1);
        
    if ($secs2cache > 0
            
    $rsreturn = &$zthis->CacheSelectLimit($secs2cache, $sql, $nrows, $offset, $inputarr);
        
    else 
            
    $rsreturn = &$zthis->SelectLimit($sql, $nrows, $offset, $inputarr, $secs2cache);
     
    SelectLimit函数:读到这个函数就感觉很高兴了,因为它返回的结果就是我们分页时各个页面的结果。
        function &SelectLimit($sql,$nrows=-1,$offset=-1, $inputarr=false,$secs2cache=0)
        {
    进入函数就有一个判断,是否支持top功能 及 行数是否大于0(每页行数)
    if ($this->hasTop && $nrows > 0) {
    ,如果两个条件都满足,则进行判断是mssql数据库还是access数据库。紧接着下面的又是个判断,感觉这个判断是比较重要的。判断偏移量($offset)是否大于0,也就是当你不在分页页面的第一页时,这个$offset将会是大于0的。在两个判断里都使用了正则替换。此正则也不难理解,就是将 select 或select distinct 或select distinctrow 替换成 select top n 或 select distinct top n 或 select distinctrow top n。当$offset 大于 0 时 ,通过$nrows + $offset得到要选择的数据数量。
    if ($offset <= 0) {                
                        
    // access includes ties in result
                        if ($isaccess) {
                            
    $sql = preg_replace(
                            
    '/(^s*selects+(distinctrow|distinct)?)/i','/1 '.$this->hasTop.' '.$nrows.' ',$sql);

                            
    if ($secs2cache>0) {
                                
    $ret =& $this->CacheExecute($secs2cache, $sql,$inputarr);
                            } 
    else {
                                
    $ret =& $this->Execute($sql,$inputarr);
                            }
                            
    return $ret// PHP5 fix
                        } else if ($ismssql){
                            
    $sql = preg_replace(
                            
    '/(^s*selects+(distinctrow|distinct)?)/i','/1 '.$this->hasTop.' '.$nrows.' ',$sql);
                        } 
    else {
                            
    $sql = preg_replace(
                            
    '/(^s*selects)/i','/1 '.$this->hasTop.' '.$nrows.' ',$sql);
                        }
                } 
    else {
                    
    $nn = $nrows + $offset;
                    
    if ($isaccess || $ismssql) {
                        
    $sql = preg_replace(
                        
    '/(^s*selects+(distinctrow|distinct)?)/i','/1 '.$this->hasTop.' '.$nn.' ',$sql);
                    } 
    else {
                        
    $sql = preg_replace(
                        
    '/(^s*selects)/i','/1 '.$this->hasTop.' '.$nn.' ',$sql);
                    }
                }
    调用Execute 函数执行上面返回的sql,
                
            
    if ($offset>0){
                
    if ($secs2cache>0$rs = &$this->CacheExecute($secs2cache,$sql,$inputarr);
                
    else $rs = &$this->Execute($sql,$inputarr);
            } 
    else {
                
    if ($secs2cache>0$rs = &$this->CacheExecute($secs2cache,$sql,$inputarr);
                
    else $rs = &$this->Execute($sql,$inputarr);
            }
    执行成功后,将返回的对象作为参数传递给_rs2rs 函数。
            if ($rs && !$rs->EOF) {
                
    $rs =& $this->_rs2rs($rs,$nrows,$offset);
            }
     
    _rs2rs 函数:还是少不了if,判断$rs 对象是否有值,否则返回false。
            if (! $rs) {
                
    $false = false;
                
    return $false;
            }
    判断数据库类型,没有设置,则返回 上面 的$rs对象。
            $dbtype = $rs->databaseType;
            
    if (!$dbtype) {
                
    $rs = &$rs;  // required to prevent crashing in 4.2.1, but does not happen in 4.3.1 -- why ?
                return $rs;
            }
    下面这个判断也很清楚,当条件符合时执行(将指针移到第一位),返回对象。

            
    if (($dbtype == 'array' || $dbtype == 'csv'&& $nrows == -1 && $offset == -1) {
                
    $rs->MoveFirst();
                
    $rs = &$rs// required to prevent crashing in 4.2.1, but does not happen in 4.3.1-- why ?
                return $rs;
            }
    下面的循环是返回每个要取出的数据库的字段名称及属性,存到$flds数组中,调用GetArrayLimit 函数。
            $flds = array();
            
    for ($i=0, $max=$rs->FieldCount(); $i < $max$i++) {
                
    $flds[] = $rs->FetchField($i);  //数据库字段名称及字段的属性
            }

            
    $arr =& $rs->GetArrayLimit($nrows,$offset);
     
    GetArrayLimit 函数:如果偏移量($offset)小于0 直接调用 GetArray函数返回数据数组,

            
    if ($offset <= 0) {
                
    $arr =& $this->GetArray($nrows);
                
    return $arr;
            } 
    否则移动指针到偏移量($offset)的位置,再循环移动指针取数据存储到数组,返回结果数组。
            $results = array();
            
    $cnt = 0;
            
    while (!$this->EOF && $nrows != $cnt) {
                
    $results[$cnt++= $this->fields;
                
    $this->MoveNext();
            }
     
    返回 _rs2rs 函数:建立一个连接,设置连接属性,设置结果集字段属性, 返回对象。
            $rs2 =& new $arrayClass();
            
    $rs2->connection = &$this;
            
    $rs2->sql = $rs->sql;
            
    $rs2->dataProvider = $this->dataProvider;
            
    $rs2->InitArrayFields($arr,$flds);
            
    $rs2->fetchMode = isset($rs->adodbFetchMode) ? $rs->adodbFetchMode : $rs->fetchMode;
            
    return $rs2;
    返回 SelectLimit函数:返回从_rs2rs 函数返回的结果。
    返回 _adodb_pageexecute_all_rows函数:调用函数,设置分页信息,返回结果对象
    返回 pageExecute函数:返回结果
    到此,分页函数的取数据功能完成,接下来就是调用页面设置函数进行分页信息设置。
    展开全文
  • // 每个线程分页查询,最终将结果放入公共的orderList Page<?> pageInfo = dalClient.queryForListPage("eps.UserRegisterServiceImpl.selectOrderList", params, totalRecords); List tempList = pageInfo....
  • 很容易想到的办法是把文本数据灌到 RDB 里,利用数据库分页机制来做,但这样做会对数据库产生很大影响(容量和性能),毕竟要分页查询的数据量不会太小。而且如果 CSV/TXT 数据就是从数据库导出去的,那这种方式基本...
  • 分页(paging)内存管理方案允许进程的物理地址空间可以是非连续的。分页避免了将不同大小的内存块备份到交换空间上的麻烦问题。   物理内存分为固定大小的块,称为帧(frame)。逻辑内存也分为同样大小的块,...
  • 分页,从列表进入详情页后,再返回列表,需要记录下上次的分页 1 创建store const state = { page: 1 } const mutations = { SET_QUERY_PARAMS: (state, page ) => { state.page = page } } const actions =...
  • 易语言ACCESS数据库分页显示源码,ACCESS数据库分页显示,数据表,刷新记录,显示数据
  • 分页机制

    万次阅读 多人点赞 2014-03-15 10:51:01
    本文为 第16章笔记 因为段的长度不定, 在分配内存时, 可能会发生内存中的空闲区域小于要加载的段, 或者空闲区域远... 分页功能从总体上来说, 是用长度固定的页来代替长度不一定的段, 藉此解决因段长度不同而带来的内
  • 分页内存管理

    千次阅读 2019-03-18 16:31:41
    文章目录一、分页内存管理详解1、分页内存管理的核心思想2、分页内存管理能解决什么问题?3、虚拟地址的构成与地址翻译4、页表5、分页内存管理的优缺点二、分页内存管理例子解析三、缺页中断和页面置换的目标1、缺页...
  • EasyUI数据分页实现(真假分页)

    千次阅读 2018-01-20 11:21:28
    数据分页功能的实现是在任何一个项目中都非常实用的一个功能,在ASP.NET学习的时候,曾写过一篇关于分页功能的实现(点击查看),上面已经介绍的真假分页的优缺点,在这里我们就不过多的赘述了。现在的分页实现依赖于...
  • Winform的分页控件

    2018-01-13 14:36:06
    很好用的Winform分页控件,内带源码及demo,很容易
  • 1. 为什么会有分页机制? 2.从虚拟地址到物理地址 3.简单的分页模型 4.页表和页目录 5.地址变换的具体过程
  • Cassandra分页查询

    2020-05-23 14:47:50
    Cassandra分页 前言: 目前需要迁移一个老版本canssandra的数据,前期使用程序读取,读取时间一长就会断开,委曲求全的办法只能是一步一步分页读取,但是复杂度不敢恭维,这里记录一下使用token进行分页的经验. 正文 ...
  • 最近在学windows2000的驱动编程,在很多代码中都看见有PAGED_CODE,实在debug模式下使用的一个分页代码的级别诊断,查了下windows2000的源码,PAGED_CODE是这样定义的。 #define PAGED_CODE() / if ...
  • php 分页 limit

    千次阅读 2018-12-06 20:09:37
    什么分页 分页其实和我们读书翻页的功能是一样的,用户每次看到的不是全部的数据,而是其中的一部分,如果没有在其中找到自己想要的内容,可以通过指定的页码或者翻页的方式转换可见内容。 分页的意义 能否不使用...
  • 开启分页机制必须说明的是,必须在保护模式下才能启动分页功能。本章的引导程序依然用第13章的。开启分页机制之前,必须创建页目录和页表。
  • 自定义JSP分页标签

    2008-07-04 14:38:14
    很适用的自定义JSP分页标签,完整的源码.在实际项目中,是经常用到的.讲解一下:自定义分页标签实现步骤--1.编写一个分页标签处理类;...顺便补充一下:分页,有真分页(多少取多少)和假分页(全部分页显示)!
  • bootstrap分页

    2014-05-14 22:20:48
    关于作者: 郑云飞, 程序员Java(web前端,web后端,oracle数据库or mysql数据库) 艺名:天放 weibo:@tianFang ...本文主要来讲解以下内容:1....为您的网站或应用提供多页的分页组件,或是用更简单的...
  • sql分页

    2018-05-07 18:45:01
    MySQL大数据量分页查询方法及其优化---方法1: 直接使用数据库提供的SQL语句---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N---适应场景: 适用于数据量较少的情况(元组百/千级)---原因/缺点: 全...
  • CPU 分页机制

    千次阅读 2014-10-21 22:44:18
    对于X86架构的CPU,分页机制是其中一个非常重要的特性。分页机制将内存地址变为虚拟地址,通过页目录,页表转换成物理地址。这为虚拟存储器的实现提供了硬件支持。 通常80386中页的大小为4kb,即内存被划分为一个个...
  • 数据分页显示,是很多B/S系统会遇到的问题。现在大多数主流数据库都提供了数据部分读取机制,而对于某些没有提供相应机制的数据而言,Hibernate也通过其它途径实现了分页,如通过Scrollable ResultSet,如果JDBC不...
  • 2、分页管理机制 3、PDE、PTE、cr3 4、如何初始化页目录表与页表 一、逻辑地址、线性地址和物理地址 1、在未开启分页机制情况下 2、在开启分页机制情况下 二、分页管理机制 下图向大家展示,如何通过分页...
  • 数据分页显示,是很多B/S系统会遇到的问题。现在大多数主流数据库都提供了数据部分读取机制,而对于某些没有提供相应机制的数据而言,Hibernate也通过其它途径实现了分页,如通过Scrollable ResultSet,如果JDBC不...
  • 分页与假分页介绍

    千次阅读 2011-08-22 13:27:40
    分页:  应用情况:数据库中记录数量不是很庞大,一次加载需要... 注意问题:一次加载数据库记录,读取脏数据或幻影几率很大,对CURD操作要提高严谨性。  示意图:   应用实例:   数据库查询

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 84,419
精华内容 33,767
关键字:

分页读什么