case x of是没有otherwise的

本文介绍了一个使用Haskell编写的简单命令行工具,该工具能够读取一个二进制文件并将其内容进行简单的位移操作,之后将处理后的数据写入另一个文件中。支持两种模式:exe2txt和txt2exe,分别用于将可执行文件转换为文本文件或将文本文件转换回可执行文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

module Main where

import System.Environment(getArgs)
import qualified Data.ByteString as B (readFile, writeFile, map)

main = do
  args <- getArgs
  case args of
    [from, out, direction] ->
      case direction of 
      "exe2txt" -> do
        s <- B.readFile from
        let s1 = B.map (/x->x+1) s
        B.writeFile out s1
      "txt2exe" -> do
        s <- B.readFile from
        let s1 = B.map (/x->x-1) s
        B.writeFile out s1
      _ -> do
        Prelude.putStrLn "usage: hs20101004-1.exe from out direction"
    _ ->
      Prelude.putStrLn "usage: hs20101004-1.exe from out direction"

帮我用C# 写 cnc_sdtreadsmpl 的使用示例,参考资料如下: cnc_sdtreadsmpl Declaration #include "fwlib32.h" or "fwlib64.h" FWLIBAPI short WINAPI cnc_sdtreadsmpl(unsigned short FlibHndl, short *stat, long datanum, ODBSD *sampledata); Description Reads the sampling data. (The cycle of sampling is 1msec.) Arguments FlibHndl [ in ] Specify the library handle. See "Library handle" for details. stat [ out ] Specify the pointer to the variable in which the status of data reading is stored. -1 : Sampling standby. 0 : End of reading sampling data. 1 : Under reading sampling data. (Sampling data exists yet.) When this argument(stat) is "0", execute the cnc_sdtendsmpl. datanum [ in ] Specify the number of sampling data which you want to read. (Specify the value of eight or more.) Reading process is executed every 8WORD unit. So, specify the multiple of eight as much as possible for this value. sampledata [ out ] Specify the pointer to the array of ODBSD structure to store the sampling data. The sampling data is acquired in order of channel which was set by cnc_sdtsetchnl function. The structure of ODBSD is as follows. typedef struct odbsd { unsigned short *chadata; /* Pointer to sampling data */ long *count; /* Pointer to reading number */ } ODBSD; Prepare the buffer area for the sampling data and the area for the number of actually read data. And the each pointer is set to ODBSD structure. Prepare ODBSD structures of the same number of channels as array. And specify the top pointer of this array to this argument. After the function is executed normally, the actual number of reading data in each channel is acquired in *count. Return EW_OK is returned on successful completion, otherwise any value except EW_OK is returned. The major error codes are as follows. Return code Meaning/Error handling EW_NUMBER (3) the number of sampling data(datanum) is wrong. (The value of eight or more was not specified.) EW_BUFFER (10) Read buffer is full. The inner buffer for reading becomes full, so the processing was canceled. EW_REJECT (13) CNC execution denied 1 : Sampling start function(cnc_sdtstartsmpl) is not executed. As for the other return codes or the details, see"Return status of Data window function" CNC option For HSSB connection, The extended driver/library function is necessary. For Ethernet connection, The Ethernet function and the extended driver/library function are necessary. However, in case of 0i-D/F, Series 30i and PMi-A, the required CNC option is as follows. When Embedded Ethernet is used, above two optional functions are not required. When Ethernet board is used, only Ethernet function is required. CNC parameter This function is not related to CNC parameter. CNC mode This function can be used in any CNC mode. Available CNC 0i-A 0i-B/C(Note) 0i-D 0i-F 15 15i 16 18 21 16i-A 18i-A 21i-A 16i-B 18i-B 21i-B 30i-A 30i-B M (Machining) X X O O X X X X X X X X X X X O O T (Turning) X X O O X - X X X X X X X X X O O LC (Loader) - - - - - - X X X X X X X X X - - 0i-D 0i-F 16i 18i 30i-A 30i-B P (Punch press) X X X X - X L (Laser) - - X - - X W (Wire) - - X X X X Power Mate i-D X Power Mate i-H X Power Motion i-A O "O" : Both Ethernet and HSSB "E" : Ethernet "H" : HSSB "X" : Cannot be used "-" : None Note) 0i-C does not support the HSSB function. See Also cnc_sdtsetchnl cnc_sdtclrchnl cnc_sdtstartsmpl cnc_sdtcancelsmpl cnc_sdtendsmpl cnc_sdtread1shot
最新发布
04-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值