Linux・C memo

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

在字符串中查找某个字符
       char *strpbrk(const char *s, const char *accept);

返回值

       在查找的字符串中存在该字符的话,返回该字符的指针,否则返回NULL
ex)
   /* 字符串「char str[]」中是否存在字符「:」 */
 ( NULL != strpbrk( (CHAR *)":" , str) )

 

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

sleep   想让执行以秒为单位休止的时候使用

    cshやC言語で使える。他のシェルでも使えるかも。
    「sleep 5」
    と記述すると、次のステップに進むのを5秒待ちます。

usleep  毫秒单位睡眠

        「usleep (10000)」
    这样的话程序将等待10ms。
    ps、
    毫秒(ms)    = 10^-3秒
    微秒(μs)       = 10^-6秒
    纳秒(ns)       = 10^-9秒
    皮秒(ps)       = 10^-12秒

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

shell的debug模式

    ->B shell的话
      bash -x hoge.sh
      C shell的话
      csh -x hoge.csh
      即可使程序在debug模式下执行_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

[miso@PE02 errlog]$ date +%C%y%m%d_%H%M
20101222_1050

可以作为log文件名来使用。

  touch `/bin/date +%C%y%m%d_%H%M`_sys.log
              →生成文件 20101222_1051_sys.log

    touch 10B_LM-`date +%m%d_%H%M`
              →生成文件 10B_LM-1022_1051

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

ShiftJISのコードで記載されたテキストを、EUCコードに書き換える。
 nkf -e -Lu phsc_zantei_CL.sh >WK.sh
 
 LinuxシステムはEUCなので、Windowsで編集したShiftJISなんかのテキストを持っていくと、
 改行コードなどが換わってします。いちいち編集しなさなくても、上記コマンドで
 文字コードの変換が出来る。

   0d 0a 0d 0a  ← Shift JIS での改行コード
   0a 0a            ← EUCでの改行コード

       -s     output MS-kanji (shifted-JIS) code.(-sでShift-JISに変換)
       -e     output EUC (AT&T) code.(-eでEUCに変換)
       -L[wmu] new line mode (改行コードのオプション)
                  -Lu   unix (LF)
                  -Lw   windows (CRLF)
                  -Lm   mac (CR)

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

Lazarus是一个开源的快速应用开发环境(RAD),它使用Free Pascal语言来编写跨平台的应用程序。Memo组件是Lazarus中用于显示或编辑多行文本的一个控件。当你在Linux下使用Lazarus的Memo组件读取中文文本时出现乱码问题,可能是因为编码设置不一致导致的。 在处理中文乱码问题时,确保Memo组件的文本编码与你读取的文件编码相匹配是关键。你可以尝试以下几个步骤来解决乱码问题: 1. 检查Memo组件的字体设置,确保使用的字体支持中文字符。 2. 检查Memo组件的编码设置,通常Memo组件可以通过设置Text属性来指定编码。例如,如果你的文件是以UTF-8编码的,你需要确保Memo组件的编码也设置为UTF-8。 3. 在读取文件之前,使用适当的文件流或库函数,如`FileToString`,并指定正确的编码格式来读取文件内容。 4. 如果Memo组件的Text属性不支持直接设置编码,你可能需要手动进行字符编码转换。可以使用Free Pascal的`SysUtils`单元中的编码转换函数来转换编码。 以下是一个简单的示例代码,展示如何将UTF-8编码的字符串转换为Memo组件能够正确显示的格式: ```pascal uses Classes, SysUtils, LCLType; procedure UTF8ToMemo(AUTF8Text: UTF8String; AMemo: TMemo); var UnicodeText: UnicodeString; WideMemoText: TWideStringList; begin // 将UTF-8字符串转换为Unicode字符串 UnicodeText := UTF8Decode(AUTF8Text); // 创建一个宽字符串列表并添加转换后的文本 WideMemoText := TWideStringList.Create; try WideMemoText.Append(UnicodeText); // 将宽字符串列表的内容赋值给Memo的Lines属性 AMemo.Lines.Assign(WideMemoText); finally WideMemoText.Free; end; end; ``` 在使用上述代码之前,请确保你的Lazarus环境和相关单元已经正确设置,以及你的Memo组件实例名称正确。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值