小编Par*_*ppa的帖子

上与下案例

在进行不区分大小写的比较时,将字符串转换为大写或小写更有效吗?它甚至重要吗?

在这篇SO帖子中建议C#使用ToUpper更有效,因为"Microsoft以这种方式优化了它".但我也读过这个论点,转换ToLower与ToUpper取决于你的字符串包含的内容,并且通常字符串包含更多小写字符,这使得ToLower更有效.

特别是,我想知道:

  • 有没有办法优化ToUpper或ToLower,使一个比另一个更快?
  • 在大写或小写字符串之间进行不区分大小写的比较是否更快?为什么?
  • 是否存在任何编程环境(例如C,C#,Python等),其中一个案例明显优于另一个案例,为什么?

language-agnostic string uppercase

79
推荐指数
5
解决办法
4万
查看次数

0Dh模式下的DOS EGA图形编程

我正在做一些有趣的复古编程.我想要创建的是使用EGA图形的DOS游戏,但我在网上找到一个很好的参考有点麻烦.每个谈论做DOS编程的人都假设程序员会使用模式13h,虽然有些页面提到了其他图形模式,但我还没有找到一个讨论正确使用的模式.

这就是我现在要努力的方法:

//------------------------------------------------------------------------------
//  DOS graphics test
//
//  Thanks to the following links:
//    http://gamebub.com/cpp_graphics.php
//
//  Written for Digital Mars C compiler to be compiled as a DOS 16 bit binary.
//------------------------------------------------------------------------------

#include <dos.h>
#include <stdio.h>

#define SCREEN_WIDTH  320;
#define SCREEN_HEIGHT 200;

unsigned char far *vram = (unsigned char far *)0xA0000000L;

//------------------------------------------------------------------------------
void set_video_mode(unsigned char mode)
{
    union REGS in, out;
    in.h.ah = 0;
    in.h.al = mode;
    int86(0x10, &in, &out);
}

//------------------------------------------------------------------------------
void plot_pixel(unsigned int x, unsigned int …
Run Code Online (Sandbox Code Playgroud)

graphics dos retro-computing

7
推荐指数
2
解决办法
4592
查看次数

Mac OS X pygame输入转到终端而不是Python

我在通过终端在Mac OS X上运行基于pygame的应用程序时遇到问题.键盘之类的输入事件会转到终端而不是我的Python应用程序,并由pygame检测到.

例如,我有以下测试脚本:

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))

done = False
while not done:
    pygame.event.pump()
    keys = pygame.key.get_pressed()
    if keys[pygame.K_ESCAPE]:
        done = True
    if keys[pygame.K_SPACE]:
        print "got here"
Run Code Online (Sandbox Code Playgroud)

当我从Mac OS X终端运行时,此脚本不会处理K_ESCAPE和K_SPACE,但终端将回显空格.

我正在运行pygame(py-game)的MacPorts端口,它取决于Python 2.4,我还使用python_select使python24成为活动版本.

python macos terminal pygame

7
推荐指数
1
解决办法
2055
查看次数

使用Flex SDK mxmlc解析组件库

我是Flex SDK的新手,并尝试使用Doug Mccune的CoverFlow小部件实现一个简单的项目.关于如何做到这一点的大部分文档都假设一个人正在使用Adobe的FlexBuilder产品,这是一个250美元的Eclipse插件,我宁愿避免购买.我遇到的问题只是让Doug的swc文件(他的组件库的二进制版本)被mxmlc(Flex SDK项目编译器)识别.我不断收到错误消息,例如

错误:无法解析为组件安装

错误:未找到类型或不是编译时常量:CoverFlow.

我也尝试过类型"VideoCoverFlow",因为我很确定这些类型是在Doug的lib中定义的.唉,我一直在搞清楚自己哪里出错了.

以下是我的mxml项目文件的全文,名为coverflow.mxml.

<?xml version="1.0" encoding="utf-8"?>

<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml"
    xmlns:local="*"
    height="100%"
    width="100%"
    layout="absolute">

    <local:CoverFlow
        id="CoverFlow"
        horizontalCenter="0"
        verticalCenter="0"
        borderThickness="10"
        borderColor="#FFFFFF"
        width="100%"/>

</mx:Application>
Run Code Online (Sandbox Code Playgroud)

我试图用以下命令编译它:

c:\flex_sdk_3\bin\mxmlc.exe -compiler.source-path=lib coverflow.mxml
Run Code Online (Sandbox Code Playgroud)

我也尝试将CoverFlow_lib.swc文件移动到与mxml文件相同的目录中,而不是使用source-path参数,但这似乎没有什么区别.

我很乐意去RTFM,如果有人能够如此友善地指出我正确的文档的方向.这里这里有相关的Stack Overflow问题.

谢谢!


更新:我已将构建命令更改为以下内容:

mxmlc -library-path+=lib coverflow.mxml
Run Code Online (Sandbox Code Playgroud)

我也尝试了以下方法:

mxmlc -library-path+=CoverFlow_lib.swc coverflow.mxml
Run Code Online (Sandbox Code Playgroud)

使用与mxml文件相同的目录中的swc文件.但是,我仍然遇到同样的错误.

这里还有一个视频显示了我正在尝试使用的相同库,但是在Flex Builder中.不幸的是,它没有显示如何使用mxmlc.

我也试过简单地剥离我的mxml,

<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml"
    xmlns:local="*" >

    <local:VideoCoverFlow />

</mx:Application>
Run Code Online (Sandbox Code Playgroud)

apache-flex mxml

6
推荐指数
1
解决办法
1万
查看次数

Python lib来读取Flash swf格式文件

我有兴趣使用Python来破解Flash swf文件中的数据.关于swf文件的格式有很好的文档,我正在考虑使用标准的Python struct lib 编写自己的Python lib来解析数据.

有人知道已经这样做的Python项目吗?我也对任何使用Perl,Ruby,Haskell等的可用解决方案感兴趣.

python flash

6
推荐指数
1
解决办法
7596
查看次数

提升lib链接器错误Visual C++

我下载的源Launchy,我试图建立它在Visual Studio 2005中Launchy项目使用VC7内置,所以我不得不更新项目文件VC8和过程似乎进展顺利.然而,Launchy也使用了Boost 1.33.1库,而我构建的是Boost 1.41.0库(Boost的道具,使更新的库更容易构建),所以我也更新了项目以指向我的新提升库安装.现在我收到以下链接器错误:

fatal error LNK1104: cannot open file 'libboost_regex-vc80-mt-sgd-1_41.lib'
Run Code Online (Sandbox Code Playgroud)

我查看了Boost lib目录,我能找到的最接近的匹配是......

libboost_regex-vc80-mt-gd-1_41.lib
Run Code Online (Sandbox Code Playgroud)

注意缺少的's'.我不明白libs的区别是什么,以及Visual Studio是否正在寻找错误的东西,或者我的Boost构建过程是否无法构建正确的库.任何人都能指出我正确的方向吗?

作为一个实验,我制作了我所拥有的正则表达式lib的副本,并将其重命名为链接器正在寻找的内容.这给了我很长的关于已经在msvcrtd.lib中定义的符号的链接器错误列表,如下所示:

error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in libcmtd.lib(typinfo.obj)
Run Code Online (Sandbox Code Playgroud)

我将尝试构建Boost 1.33.1库并指向我的Launchy项目文件.但是我仍然想知道我的Boost 1.41.0库有什么问题.

编辑:我在Boost文档中找到了's'库的参考:

静态链接到C++标准库和编译器运行时支持库时,请使用此库.

所以看起来's'的库是正确的.现在我只需要弄清楚如何构建它们.

解决方案:我能够使用以下命令行构建缺少的升级库.

bjam --build-type=complete msvc stage
Run Code Online (Sandbox Code Playgroud)

我已经在升力生活的目录中运行了boostrap.bat之后运行了.

c++ boost visual-studio-2005 linker-errors

6
推荐指数
1
解决办法
7595
查看次数

什么时候C++获得嵌套类?

不知何故,直到今天我才注意到C++支持嵌套类.这让我感到惊讶,因为当我在90年代学习C++时,我特别记得嵌套类是Object Pascal和Java所具有的,但是C++没有.我问过一位老程序员朋友,他同意他回忆起C++没有嵌套类.

我对C++的回忆是不是错误的嵌套类,或者它们是否在过去的十五年中某些时候被添加到标准中?我尝试在Google上搜索有关此主题的信息,但我还没有提出任何有用的信息.

也可能是我正在考虑嵌套函数,Pascal当然支持这些函数,但C不支持.

c++

1
推荐指数
1
解决办法
382
查看次数