⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 binlang

📁 编译后直接运行的MP3播放器全部C语言源代码 一个包含FAT文件系统、系统引导 Boot、FLASH Driver等内容的
💻
字号:
#!/usr/bin/env perl#############################################################################             __________               __   ___.                  #   Open      \______   \ ____   ____ |  | _\_ |__   _______  ___  #   Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  /  #   Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  <   #   Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \#                     \/            \/     \/    \/            \/ # $Id: binlang,v 1.11 2004/01/23 11:41:11 bagder Exp $## Copyright (C) 2002 by Daniel Stenberg <daniel@haxx.se>## All files in this archive are subject to the GNU General Public License.# See the file COPYING in the source tree root for full license agreement.## This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY# KIND, either express or implied.#############################################################################if(!$ARGV[0] || !$ARGV[1] || !$ARGV[2]) {    print <<MOOUsage: binlang <english file> <language file> <output file>Generate a binary language file.MOO;    exit;}if($ARGV[0] eq "-v") {    shift @ARGV;    $debug=1;}my $english = $ARGV[0];my $input = $ARGV[1];my $output = $ARGV[2];my $idnum=0;open(ENG, "<$english") or die "Can't open $english";open(LANG, "<$input") or die "Can't open $input";open(OUTF, ">$output") or die "Can't open $output";my $langversion = 2;binmode OUTF;printf OUTF ("\x1a%c", $langversion); # magic lang file header## We scan the english file to get the correct order of the id numbers#my $idnum=0; # start with a true numberwhile(<ENG>) {    if($_ =~ / *\#/) {        # comment        next;    }    # get rid of DOS newlines    $_ =~ s/\r//g;    if($_ =~ /^ *([a-z]+): *(.*)/) {        ($var, $value) = ($1, $2);        $set{$var} = $value;        if($var eq "new") {            # the last one for a single phrase            $idnum{$set{'id'}}=$idnum;            $idnum++;            undef %set;        }    }}close(ENG);while(<LANG>) {    if($_ =~ /^ *\#/) {        # comment        next;    }    # get rid of DOS newlines    $_ =~ s/\r//g;    if($_ =~ /^ *([a-z]+): *(.*)/) {        ($var, $value) = ($1, $2);  #      print "$var => $value\n";        $set{$var} = $value;        if($var eq "new") {            # the last one for a single phrase            if(!$value) {                # if not set, get the english version                $value = $set{'eng'};            }            if($value =~ s/^\"(.*)\"\s*$/$1/g) {                $idnum = $idnum{$set{'id'}};                if($idnum eq "") {                    warn "Found no ".$set{'id'}." in english file!\n";                }                else {                    $idnum{$set{'id'}} = '_done_';                    printf OUTF ("%c%c%s\x00",                                  ($idnum>>8), ($idnum&0xff),                                  $value);                    if($debug) {                        printf("%02x => %s\n", $idnum, $value);                    }                }            }            else {                warn "String for ".$set{'id'}." misses quotes\n";            }            undef %set;        }    }}close(LANG);close(OUTF);foreach $k (keys(%idnum)){   if($idnum{$k} ne '_done_')   {      warn "Missing ID in $input: $k\n";   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -