精华内容
下载资源
问答
  • MID

    千次阅读 2008-09-10 13:42:00
    一,共同的名称:超移动便携笔记本电脑首先让我们对这几类产品给出明确的定义:UMPC即Ultra Mobile PC,超便携个人...MID即Mobile Internet Devices,移动互联网设备;英特尔在去年北京的IDF大会上首先推出这一概念。

    一,共同的名称:超移动便携笔记本电脑

    首先让我们对这几类产品给出明确的定义:

    UMPC即Ultra Mobile PC,超便携个人电脑;最初始的概念由微软提出,尽管经历了几年的沉寂,但在2006年由英特尔和微软共同造势,进而成为近两年关于笔记本未来趋势最热门的预测之一。

    MID即Mobile Internet Devices,移动互联网设备;英特尔在去年北京的IDF大会上首先推出这一概念。

    UMD即Ultra Mobile Devices,超移动设备;为了和“Wintel联盟(微软和英特尔的利益同盟)”的UMPC和MID抗衡,威盛也在2006年发布了自己的超便携电脑计划UMD,和前者唯一的不同就是都采用了威盛的C7M处理器。

    如果从字面上的定义无法看出这其中的奥妙,那么就从一些细节来入手吧。从UMPC到UMD、再MID, 核心的词汇从“PC”变成了“Device”,这说明笔记本行业的多家巨头对未来产品发展趋势的看法是产品将逐渐变得更加轻薄和小巧便携,也许在功能上可 以退而求其次,但在使用范围上却能够凭借着灵活的扩展性得到最大限度内的发挥。Device并非局限在电脑这个层面上,其市场定位直指现如今已成气候的智 能手机。

    们可以注意到,现在拿智能手机、PDA的人大多数随身还会带着一部传统的手机,这就给超便携 笔记本电脑提供了机会。这种移动设备主要被用于实现消费者与互联网进行数据交换。现在智能手机每年的出货量是3000万台到4000万台,以后将达到每年 约2亿台的销量,因此我们可以预计超便携笔记本电脑未来几年将占领智能手机50%以上的市场份额。

    从众家巨头针对自家产品的宣传上也能看出一二:微软对UMPC的描述是结合了Windows XP/Vista与移动技术的优势,可以让用户轻松方便地在旅途中访问和使用软件。它的硬件设计小巧轻便,可以随时携带在身边进行连接和通信,随时随地处 理各种任务并享受娱乐功能,不管身处何方,都能使用户都能迅速获取最新的信息,保持与世界的亲密接触。与此同时,英特尔从应用上区分了UMPC和MID:UMPC针对商务或者教育领域,MID针对消费类市场,体积更加小巧。而威盛认为,未来的UMD产品将横跨电脑和手机两大领域,融合两者功能,汇集多媒体播放、GPS导航、摄像等特性,将成为数字时代背景下功能最完备、兼顾时尚和便携的革命性产品。


    展开全文
  • MIF/MID格式简介

    万次阅读 2019-08-17 18:05:54
    MapInfo MIF/MID文件格式描述 这种通用的格式允许把普通的数据添加到多种的图像元素中。MIF/MID文件采用ASCII编码,因此它是可编辑的、相对比较容易生成、并且可以工作在MapInfo支持的所有平台上。也许理解MIF格式...

    微信搜索:“二十同学” 公众号,欢迎关注一条不一样的成长之路

    MapInfo MIF/MID文件格式描述

            这种通用的格式允许把普通的数据添加到多种的图像元素中。MIF/MID文件采用ASCII编码,因此它是可编辑的、相对比较容易生成、并且可以工作在MapInfo支持的所有平台上。也许理解MIF格式的最好的方法是在读完这篇文章后,拿着MIF格式说明,研究一个MIF文件。你也可以通过“exporting files to MIF”创建你自己的MIF文件,然后在文本编辑器中好好的研究它。

            MapInfo数据存在于两种文件中--图形数据存储在.MIF文件、文本数据存储在.MID文件。文本数据包括每一项记录的一行和回车,回车加换行,行之间的换行。MIF文件的数据包括两部分--文件头和数据区。文件头存放着如何创建MapInfo表格的信息;数据区存放着图形对象的解释。

            下面是MIF文件头的描述(包括可选项,下表中由“[ ]”括起来的部分就是可选项)

    Version n 
    
    Charset "characterSetName"
    
    [ DELIMITER "<c>" ] 
    
    [ UNIQUE n,n.. ] 
    
    [ INDEX n,n.. ]
    
    [ COORDSYS... ] 
    
    [ TRANSFORM... ]
    
    COLUMNS n
    
    <name> <type> 
    
    <name> <type> 
    
    … 
    
    … 
    
    DATA
    
    

    1.Version 版本号

    Version”说明你使用的MIF格式的版本(VERSION 1, VERSION 2, VERSION 300中的一种)Version 300,引自Mapinfo 3.0,允许形容由多段组成的折线对象。

    2.Charset 字符集

    Charset”指定表中创建文本所使用的字符集。比如说:"WindowsLatin1"说明文件使用的是the Windows US & Western Europe字符集;"MacRoman"说明文件使用的是the Macintosh US & Western Europe字符集;或者,注明"Neutral"是为了防止将文本转成了另外的字符集。如果你没有使用其中任何一个字符集,你可以通过exporting a tableexamining the .MIF file in a text editor为你的字符集指定正确的语法。

    3.Delimiter 分隔符

    指定引号(即""或者'')之间的分隔符,比如说:

    DELIMITER ";"

    默认的分隔符是Tab;如果你使用的是默认分隔符,你不需要“DELIMITER”这一行。

    4.Unique

    指定一个数字。这个数字指定一个数据库的列;3是第三列,7是第七列,以此类推。发生在UNIQUE指定的列上的事情是微妙的。比如说,想象一下你建立一个高速公路的数据库。每一条路都只有一个名字,但是在每一路段中都会把名字重写一遍。这时你会把NAME这一列放在一个单独的表中,而包含每个路段的信息的其他列不会放在那个表中。这样就可以创建两个相关的表格:一个NAME表,一个包含其他信息。This is how MapInfo's various street maps(StreetInfo) are prepared.

    5.Index 索引

    Index”指明表中已经建立索引的列,“INDEX”项包括一个数字(或者一系列数字)。每一个数字指定一个数据库的列;3是第三列,7是第七列,以此类推。在“INDEX”表中指定的列会建立索引。

    6.CoordSys

    指定“COORDSYS”项表示数据不是以经纬度的形式存储的。当没有指定“COORDSYS”这一项时,数据被认为是以经纬度的方式存储。All coordinates are stored with respectto the northeast quadrant.。 在美国的点的x坐标为负而在欧洲的点(Greenwich以东)的坐标为正。在北半球的点的y坐标为正而在南半球的点的坐标为负。 

    7.Transform 转换

    你可以通过“Transform”实现地理元素的坐标转换。

    --------------------------------------------

    | Quadrant 2: | Quadrant 1: |

    | Nortwest Quadrant | Norteast Quadrant |

    --------------------------------------------

    | Quadrant 3: | Quadrant 4: |

    | Southwest Quadrant | Southeast Quadrant |

    --------------------------------------------

    8.Columns 

    指定列数。然后,为每一列,建立一行(包括the column namethe column type、一个用来指定域长度的数字--仅为characterdecimal类型的列建立)用来说明其格式。有效的列类型包括:

    char(width)

    integer        [说明:which is 4 bytes, from -2^31 to 2^31-1]

    smallint        [说明:which is 2 bytes, so it can only store numbers between -32767 and +32767)]

    decimal (width, decimals)

    float

    date

    logical 

    下面是mif文件头的COLUMNS部分的一个例子:

    STATE char (15) 

    POPULATION integer 

    AREA decimal (8,4) 

    通过上面指定的数据库,我们知道对应的MID文件有三列:

    列名            列类型

    STATE           char(15) 15位长的字符串

    POPULATION     INTGER   整型

    AREA            decimal(8,4) 一个最长8位、小数点后有4位的小数

     

    MIF文件的“data”部分紧跟着文件头并且必须由一个单行“DATA”引出:

    DATA

    MIF文件的数据部分可以包括任意长度的图形变量,其中每一项对映着一个图形对象。MapInfo自动使MIFMID文件里面的每一条相一致,比如说:MIF文件的第一个object对应着MID文件的第一行,MIF文件的第二个object对应着MID文件的第二行。

    MIF文件中没有图形对象与MID文件的行对应时,一个“blank”对象必须写在MIF文件中相应的位置。

    NONE

    图形对象可以被指定为如下几种类型:

    point          //

    line           //线

    polyline       //折线

    region         //区域

    arc            //

    text           //文本

    rectangle      //矩形

    rounded rectangle   //圆矩(即4个角做“钝化”处理的矩形)

    ellipse        //椭圆

    展开全文
  • mid、mif文件操作工具类

    万次阅读 2019-08-17 18:07:00
    读写mid、mif文件操作工具类 装载mid文件,将mid文件里的数据变为 List<List<String>> 形式的 public List<List<String>> loadMidFile(File file) { List<List<String>> ...

    微信搜索:“二十同学” 公众号,欢迎关注一条不一样的成长之路

    读写mid、mif文件操作工具类

    装载mid文件,将mid文件里的数据变为  List<List<String>> 形式的

    public List<List<String>> loadMidFile(File file) {
           
    
            List<List<String>> midRows= new ArrayList<>();
            try {
    
                BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "gbk"));
                String line;
                Integer count = 0;
                while ((line = reader.readLine()) != null) {
                    List<String> cols = Arrays.asList(line.split(",",-1));
                    if (cols.size() > 0) {
                        for (int i = 0; i < cols.size(); i++) {
                            String value = cols.get(i).replace("\"", "");
                            cols.set(i, value);
                        }
                        rows.add(cols);
    
                        if (MAXTESTROWCOUNT > 0) {
                            count += 1;
                            if (count > MAXTESTROWCOUNT) {
                                break;
                            }
                        }
                    }
                }
                reader.close();
    
            } catch (FileNotFoundException e) {
                logger.error("loadMidFile():", e);
            } catch (IOException e) {
                logger.error("loadMidFile():", e);
            }
    
            return midRows;
        }

    装载mif文件

    public List<String> loadMifFile(File file, Boolean isLoadMifData) {
    
            //colField 为mid文件里各个值对应的字段
            List<String> colField = new ArrayList<>();
            try {
                BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "gbk"));
                String line;
                while ((line = reader.readLine()) != null) {
                    if (line.toUpperCase().startsWith("COLUMNS")) {
                        int num = Integer.parseInt(line.substring("Columns ".length()));
                        for (int i = 0; i < num; i++) {
                            line = reader.readLine().trim();
                            List<String> cols = Arrays.asList(line.split(","));
                            if (cols.size() > 0) {
                                colHeaders.add(cols.get(0).split(" ")[0].trim());
                            }
                        }
    
                        if (isLoadMifData) {
                            //装载mif里的geo数据(点,线,面不同类型)
                            loadMifFileGeoDatas(reader);
                        }
    
                        break;
                    }
                }
                reader.close();
    
            } catch (FileNotFoundException e) {
                logger.error("loadMifFile():", e);
            } catch (IOException e) {
                logger.error("loadMifFile():", e);
            }
    
            return colField;
        }
    //如果geo数据为面
    public Map<Integer, List<List<List<Double>>>> loadMifFileGeoDatas(BufferedReader reader) {
            Map<Integer, List<List<List<Double>>>> regions = new HashMap<>();
            Integer rowIndex = -1;
            try {
                String line;
                Integer count = 0;
                while ((line = reader.readLine()) != null) {
                    line = line.trim();
                    if (line.toUpperCase().contains("NONE")){
                        regions.put(++rowIndex, new ArrayList<>());
                    }
                    if (line.toUpperCase().startsWith("REGION")) {
                        int num = Integer.parseInt(line.substring("Region ".length()));
                        List<List<List<Double>>> dataGroups = new ArrayList<>();
    
                        for (int i = 0; i < num; i++) {
                            line = reader.readLine().trim();
                            int rowCount = Integer.parseInt(line);
                            List<List<Double>> datas = new ArrayList<>();
                            for (int j = 0; j < rowCount; j++) {
                                line = reader.readLine().trim();
                                List<String> xy = Arrays.asList(line.split(" "));
                                List<Double> points = new ArrayList<>();
    
                                if (xy.size() == 2) {
                                    points.add(Double.parseDouble(xy.get(0)));
                                    points.add(Double.parseDouble(xy.get(1)));
                                    datas.add(points);
                                }
                            }
                            dataGroups.add(datas);
                        }
                        regions.put(++rowIndex, dataGroups);
    
                        if (MAXTESTROWCOUNT > 0) {
                            count += 1;
                            if (count > MAXTESTROWCOUNT) {
                                break;
                            }
                        }
                    }
                }
                reader.close();
    
            } catch (FileNotFoundException e) {
                logger.error(e);
            } catch (IOException e) {
                logger.error(e);
            }
            return regions;
        }
    
    
     public LinkedHashMap<String, Object> getGeometryMap(Map<Integer, List<List<List<Double>>>> regions,Integer rowIdx) {
    
            if (regions != null) {
                List<List<List<Double>>> coordinates = regions.getOrDefault(rowIdx, null);
                LinkedHashMap<String, Object> geometryMap = new LinkedHashMap<String, Object>() {{
                    put("type", "Polygon");
                    put("coordinates", coordinates);
                }};
    
                return geometryMap;
            }
    
            return null;
    
        }
    //如果geo数据为点
    public Map<Integer, List<Double>> loadMifFileGeoDatas(BufferedReader reader) {
    
            Map<Integer, List<Double>> pointRows = new HashMap<>();
            Integer rowIndex = -1;
            try {
                String line;
                Integer count = 0;
                while ((line = reader.readLine()) != null) {
                    line = line.trim();
                    if (line.toUpperCase().contains("NONE")){
                        pointRows.put(++rowIndex, new ArrayList<>());
                    }
                    if (line.toUpperCase().startsWith("POINT")) {
                        List<String> point = Arrays.asList(line.split(" "));
                        if (point.size() == 3) {
                            List<Double> point1 = new ArrayList<>();
                            point1.add(Double.parseDouble(point.get(1)));
                            point1.add(Double.parseDouble(point.get(2)));
                            pointRows.put(++rowIndex, point1);
                        }
                    }
    
                    if (MAXTESTROWCOUNT > 0) {
                        count += 1;
                        if (count > MAXTESTROWCOUNT) {
                            break;
                        }
                    }
                }
                reader.close();
    
            } catch (FileNotFoundException e) {
                logger.error(e);
            } catch (IOException e) {
                logger.error(e);
            }
            
            return pointRows;
    
        }
    
    
     public LinkedHashMap<String, Object> getGeometryMap(Map<Integer, List<Double>> pointRows,Integer rowIdx) {
            if (pointRows!= null) {
                List<Double> pointRow = pointRows.getOrDefault(rowIdx, null);
                LinkedHashMap<String, Object> geometryMap = new LinkedHashMap<String, Object>() {{
                    put("type", "Point");
                    put("coordinates", pointRow);
                }};
    
                return geometryMap;
            }
            return null;
        }
    //如果geo数据为线
    public Map<Integer, List<List<Double>>> loadMifFileGeoDatas(BufferedReader reader)  {
            Map<Integer, List<List<Double>>> lineRows = new HashMap<>();
            Integer rowIndex = -1;
            try {
                String line;
                Integer count = 0;
    
                while ((line = reader.readLine()) != null) {
                    List<List<Double>> lines = new ArrayList<>();
                    line = line.trim();
                    if (line.toUpperCase().contains("NONE")){
                        lineRows.put(++rowIndex, lines);
                    }
                    if (line.toUpperCase().startsWith("LINE")) {
                        List<String> point = Arrays.asList(line.split(" "));
                        if (point.size() == 5) {
                            List<Double> point1 = new ArrayList<>();
                            point1.add(Double.parseDouble(point.get(1)));
                            point1.add(Double.parseDouble(point.get(2)));
                            lines.add(point1);
    
                            List<Double> point2 = new ArrayList<>();
                            point2.add(Double.parseDouble(point.get(3)));
                            point2.add(Double.parseDouble(point.get(4)));
                            lines.add(point2);
                        }
                        lineRows.put(++rowIndex, lines);
                    }
                    if (line.startsWith("Pline")) {
                        int num = Integer.parseInt(line.substring("Pline ".length()));
                        for (int i = 0; i < num; i++) {
                            line = reader.readLine().trim();
                            List<String> point = Arrays.asList(line.split(" "));
                            if (point.size() == 2) {
                                List<Double> points = new ArrayList<>();
                                points.add(Double.parseDouble(point.get(0)));
                                points.add(Double.parseDouble(point.get(1)));
                                lines.add(points);
                            }
                        }
                        lineRows.put(++rowIndex, lines);
                    }
    
                    if (MAXTESTROWCOUNT > 0) {
                        count += 1;
                        if (count > MAXTESTROWCOUNT) {
                            break;
                        }
                    }
                }
                reader.close();
    
            } catch (FileNotFoundException e) {
                logger.error(e);
            } catch (IOException e) {
                logger.error(e);
            }
            return lineRows;
        }
    
    public LinkedHashMap<String, Object> getGeometryMap(Map<Integer, List<List<Double>>> lineRows,Integer rowIdx) {
            if (lineRows!= null) {
                List<List<Double>> line = lineRows.getOrDefault(rowIdx, null);
                LinkedHashMap<String, Object> geometryMap = new LinkedHashMap<String, Object>() {{
                    put("type", "LineString");
                    put("coordinates", line);
                }};
    
                return geometryMap;
            }
            return null;
        }

     

    展开全文
  • vb怎么才能改变mid函数的返回值类型,为什么mid$改写成mid%也不行,mid&也不行,如果是long怎么写呢?
  • mid函数和mid$函数的区别是什么?mid函数如果预先不知道需要采集的长度呢?mid函数可以用于非定长的字符串么?
  • 关于MidMid$

    2009-08-12 21:01:00
    (1)在VB6中,Mid()返回Variant类型;Mid$()则返回String。所以如果你要把Mid()的结果返回给一个String,建议使用Mid$()以减少类型转换而提高性能。 (2)在VB6以后的版本中,Mid函数直接返回String,不过仍向后...

    (1)在VB6中,Mid()返回Variant类型;Mid$()则返回String。所以如果你要把Mid()的结果返回给一个String,建议使用Mid$()以减少类型转换而提高性能。
    (2)在VB6以后的版本中,Mid函数直接返回String,不过仍向后兼容Mid$的写法。具体看这个帖子 17楼。

    展开全文
  • mid$函数和mid加上cstr函数的区别在哪里?两个函数相加调用是不是每个函数各自调用一次?
  • mid()函数

    千次阅读 2019-08-14 09:20:08
    MID() 函数用于从返回结果中提取字符 SELECT MID(City,1,3) AS ShortCity FROM Customers; 表示从返回的City中提取前面三个字符 比如第一列是beijing 那么第一列返回的是bei ...
  • mid的计算方法

    2018-03-04 09:57:22
    如果用mid=(low+high)/2,在运行二分查找程序时可能超时。原因是int类型最大表示范围是2147483647,如果输入的low和high都接近2147483647,两个数相加就会溢出,变成一个负数。所以如果想避免溢出,不能使用mid=(low...
  • SQL MID() 函数

    2018-08-28 17:07:51
    MID() 函数 SQL MID() 语法 SQL MID() 实例 MID() 函数  MID 函数用于从文本字段中提取字符。 SQL MID() 语法 SELECT MID(column_name,start[,length]) FROM table_name 参数 描述 column_name ...
  • vb语言中mid函数外加cstr函数连起来调用是不是比mid$函数更慢啊?那么为什么还要保留mid函数呢?
  • mid$函数调用返回的字符串和cstr(mid)返回的字符串有什么区别?cstr是不是可以改变返回值?那么mid$有什么用,使用mid$有什么好处?
  • 关于mid函数的用法问题,mid函数不带$符号的,是不是可以直接返回数字呢?能不能指定mid函数的返回值类型,mid%行不行?
  • 在使用二分法过程中常常需要算mid的值,常见的算mid的方法就是 mid = (left +right)/2 当处理比较长的有序数组时,left与right比较大,容易造成溢出,产生错误,比较常见的处理是 mid = left+(right - left)/2,...
  • 移动互联网设备MID

    2016-12-04 15:41:08
    MID的概念  MID,即Mobile Internet Device,移动互联网设备。其概念是英特尔在2007年4月提出的,其定义是介于智能手机和上网本之间的产品。按照英特尔的说法,是一款能够提高高端客户办事效率、满足随时随地上网...
  • sql mid()

    千次阅读 2016-02-17 15:01:33
    MID() 函数 MID 函数用于从文本字段中提取字符。 SQL MID() 语法 SELECT MID(column_name,start[,length]) FROM table_name 参数 描述 column_name 必需。要提取字符的字段。 ...
  • 为什么mid%就不行,只能用mid$,怎么修改一个函数的返回值类型,需要加上function么?
  • VB--mid函数

    2019-06-03 14:25:41
    Mid 函数 从字符串中返回指定数目的字符。 Mid(string, start[, length]) 参数 string 字符串表达式,从中返回字符。如果 string 包含 Null,则返回 Null。 Start string 中被提取的字符部分的开始位置。如果...
  • VB Mid函数作用

    千次阅读 2017-03-30 15:01:45
    Mid就是从一个字符串中取子字符串,比如a="aabbcc",我们想取出"bb"就可以用Mid("aabbcc",3,2)
  • 二分的mid取法

    2019-09-27 22:47:23
    r = mid, l = mid + 1, m = (l + r) >> 1.当答案要对mid的浮点结果向上取整的时候这样取。如最少几个人可以分完果子,二分人数。 r = mid - 1, l = mid, m = (l + r + 1) >> 1.当答案要对mid的浮点结果...
  • 使用mid$函数为什么类型和mid是不同的,这两个函数怎么区分?返回的字符串还是原来字符串的一部分么?
  • 大疆Livox Mid-40 SLAM

    千次阅读 2020-09-01 18:18:51
    1.1 Livox Mid-40三维激光雷达 1.2 基于LOAM-Livox的SLAM开源方案 2、Livox Mid-40驱动安装 2.1 编译和安装Livox SDK 2.2 Livox ROS Driver驱动安装 2.3 运行Livox ROS Driver驱动 3、LOAM-Livox开源方案编译 3.1 ...
  • 本期介绍的是VBA中的Mid函数。 Mid()函数是截取字符串用的,比如“ABCDEF”字符串,我们想截取前面一部分,变成“ABCD”,那我们就需要Mid()函数,摘取网路上的书面解释,Mid()的释义如下: Mid()函数返回给定...
  • VB中MID如何使用

    千次阅读 2019-01-19 15:06:56
    MID表示取出字符串 上面程序表示在aabbcc中又第3个字符串开始,连续取出2个字符串。
  • 关于mid函数的一些用法

    千次阅读 2018-04-13 11:15:16
    Mid 函数 从字符串中返回指定数目的字符。 Mid(string, start[, length]) 参数 string 字符串表达式,从中返回字符。如果 string 包含 Null,则返回 Null。 Start string 中被提取的字符部分的开始位置。...
  • 二分查找中mid取值注意

    千次阅读 2019-03-25 09:44:27
    如果用mid=(left+right)/2,在运行二分查找程序时可能溢出超时。 因为如果left和right相加超过int表示的最大范围时就会溢出变为负数。 所以如果想避免溢出,不能使用mid=(left+right)/2,应该使用mid=left+...
  • ---------------------------------- 这个在二分查找里经常写到,但是之前不重视。这两种用法里,用 mid=low+(high-low)/2 这种写法好,虽然数学上是一样的, 但是mid=(low+high)/2 中的加法可能会发生溢出。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,618
精华内容 18,247
关键字:

mid