Can you compare the normalized output using unicode-transforms and using
text-icu, for both of your files? Let me know if you find a difference
between the two. If it is different please raise an issue at
https://github.com/harendra-kumar/unicode-transforms .

-harendra

On 5 March 2017 at 18:05, S. H. Aegis <[email protected]> wrote:

> Thank you so much, Harendra Kumar.
> I re-write my code, and it works!
> But wired result comes out.
> All of fuctions works good indivisually, but final result have a error.
> There is no error when using text-icu or iconv lib.
> Why these results come out? I needs any suggestions.
> Thank you.
> Have a nice day~
>
> Sincerely, S. Chang.
>
> C:\Users\shaeg\Documents\Haskell\samChecker3>stack exec samChecker3-exe
>> BoHom.dat RxDxData.csv
>> samChecker3-exe.EXE: Prelude.!!: index too large
>
>
> RxDxData.csv
>
>> Name,codeNo,Dx,Blank
>> Naem2,codeNo2,Dx2,Blank2
>> ...
>>
>
> BoHom.dat
> series of numbers that encoded in EUC-KR (more than 1000 lines)
>
> Main.hs
>
>> module Main where
>>
>> import Lib
>> import System.Environment
>> --import System.FilePath.Windows
>> --import Data.Text.ICU.Convert       -- There is Codec.Text.IConv, too.
>> import qualified Data.Text         as T
>> import qualified Data.Text.IO      as TIO
>> import qualified Data.Text.Encoding      as TE
>> import qualified Data.ByteString.Char8   as BS
>> import qualified Data.ByteString.Lazy    as BL
>> --import Codec.Text.IConv
>> import Data.Text.Normalize
>>
>> main :: IO ()
>> main = do
>>         args <- getArgs    -- 1st=SAM 2nd=csv
>>         byteSAM <- TIO.readFile $ (args !! 0)
>>         byteRxDxData <- TIO.readFile $ (args !! 1)
>>         TIO.putStrLn $ T.concat $ checkRxDxSAM (normalize NFKC byteSAM)
>> (normalize NFKC byteRxDxData
>>
>
> Lib.hs
>
>> module Lib
>> --    ( readSAM
>> --    , readCSV
>> --    , checkRxDxSAM
>> --    ) where
>>       where
>>
>> import Data.Text                 as T
>> import Data.Text.IO              as TIO
>> --import Data.Text.ICU.Convert
>> import qualified Data.ByteString.Char8 as BS
>> import qualified Data.ByteString.Lazy  as BL
>> import Text.Regex.TDFA
>> --import Data.Text.ICU             as I
>> import Prelude hiding (take, drop, map, lines)
>> --import Codec.Text.IConv
>> import Data.Text.Normalize        as TN
>>
>> type RowSAM = Text
>> type SAM = [Text]
>> type Case = Text
>> type RowRxDx = Text
>> type RxDx = [Text]
>> type RxDxList = [[Text]]
>> type Rx = Text
>> type Dx = Text
>> type MediName = Text
>> type Message = Text
>> type ErrorMessage = Text
>> type Date = Text
>> type PtName = Text
>>
>> checkRxDxSAM :: RowRxDx -> RowSAM -> [ErrorMessage]
>> checkRxDxSAM rxDx sam = [pickupError r s | r <- (makeTuple rxDx), s <-
>> makeSamData sam]
>>
>> makeSamData :: RowSAM -> SAM
>> makeSamData sam = splitIntoCase sam
>>
>> makeTuple :: RowRxDx -> [(Rx, Dx, MediName)]
>> makeTuple rxDx = zip3 (makeRxList rxDx) (makeDxList rxDx)
>> (makeMediNameList rxDx)
>>
>> makeMediNameList :: RowRxDx -> [MediName]
>> makeMediNameList rxDx = fmap pickupMediName $ makeRxDxList rxDx
>>
>> makeDxList :: RowRxDx -> [Dx]
>> makeDxList rxDx = fmap pickupDx $ makeRxDxList rxDx
>>
>> makeRxList :: RowRxDx -> [Rx]
>> makeRxList rxDx = fmap pickupRx $ makeRxDxList rxDx
>>
>> makeRxDxList :: RowRxDx -> RxDxList
>> makeRxDxList rowRxDx = fmap f (lines rowRxDx)
>>     where
>>         f :: Text -> [Text]
>>         f x = splitOn (pack ",") x
>>
>> pickupError :: (Rx, Dx, Message) -> Case -> ErrorMessage
>> pickupError (rxCode, dxCode, errMsg) ptCase =
>>     case isErrorRxDx rxCode dxCode ptCase of
>>         --True  -> append (pickupCaseDate ptCase) $ append (pack " ") $
>> append (pickupPtName ptCase) $ append (pack " Omit ") $ append dxCode $
>> append (pack " for ") errMsg
>>         True  -> append (pickupCaseDate ptCase) $ append (pack " ") $
>> append (pickupPtName ptCase) $ append (pack " Omit ") $ append dxCode $
>> append (pack " for ") $ append errMsg (pack "\n")
>>         False -> T.empty
>>
>> pickupMediName :: RxDx -> MediName
>> pickupMediName rxDx = rxDx !! 0
>>
>> pickupDx :: RxDx -> Dx
>> pickupDx rxDx = rxDx !! 2
>>
>> pickupRx :: RxDx -> Rx
>> pickupRx rxDx = rxDx !! 1
>>
>> pickupPtName :: Case -> PtName
>> pickupPtName ptCase = take 3 $ drop 45 ptCase
>>
>> pickupCaseDate :: Case -> Date
>> pickupCaseDate ptCase = take 8 $ drop (348 + 2) ptCase
>>
>> isErrorRxDx :: Rx -> Dx -> Case -> Bool
>> isErrorRxDx rxCode dxCode ptCase =
>>     case isExistRx rxCode ptCase of
>>         True  -> if (isExistDx dxCode ptCase) then False else True
>>         False -> False
>>
>> isExistDx :: Dx -> Case -> Bool
>> isExistDx dxCode ptCase = (unpack ptCase) =~ (unpack dxCode)
>> --isExistDx dxCode ptCase =
>> --    case (I.find (regex [] dxCode) ptCase) of
>> --        Just x  -> True
>> --        Nothing -> False
>>
>> isExistRx :: Rx -> Case -> Bool
>> isExistRx rxCode ptCase = rxCode `isInfixOf` ptCase
>>
>> splitIntoCase :: RowSAM -> SAM
>> splitIntoCase = splitOn $ pack "AH021
>>
>
>
>
> On Sunday, March 5, 2017 at 1:35:11 AM UTC+9, S. H. Aegis wrote:
>>
>> Hi.
>>
>> I worte some code. and fixed some errors with the help of good persons.
>> Now, this utility works properly in Stack environment.
>> This utility use text-icu and I coded this utility on windows. Of course,
>> I want to work this utility on other windows OS.
>>
>> I copied %stackPath%\.stack-work\install\~\bin\samCheceker-exe.exe to
>> some other folder, and execution through CMD.
>> But I got error message that says "libicuuc57.dll dose not exist. so
>> program can't start. please re-install the program."
>> I copied libicuuc57.dll, and so... as like programming newbees, but
>> failed. "stack install" command was the same result.
>>
>> With help of Francesco Ariis from ([email protected]), I steped
>> forword.
>> But still got error message.
>>
>> C:\Users\shaeg\Documents\Haskell\samChecker3> stack build
>> --ghc-options="-static -optl-static"
>> Warning: File listed in samChecker3.cabal file does not exist: README.md
>> samChecker3-0.1.0.0: unregistering (local file changes: app\Main.hs
>> samChecker3.cabal src\Lib.hs test\Spec.hs)
>> samChecker3-0.1.0.0: configure (lib + exe)
>> Configuring samChecker3-0.1.0.0...
>> samChecker3-0.1.0.0: build (lib + exe)
>> Preprocessing library samChecker3-0.1.0.0...
>> [1 of 1] Compiling Lib              ( src\Lib.hs,
>> .stack-work\dist\ca59d0ab\build\Lib.o )
>> Preprocessing executable 'samChecker3-exe' for samChecker3-0.1.0.0...
>> [1 of 1] Compiling Main             ( app\Main.hs,
>> .stack-work\dist\ca59d0ab\build\samChecker3-exe\samChecker3-exe-tmp\Main.o
>> )
>> Linking .stack-work\dist\ca59d0ab\build\samChecker3-exe\samChecker3-exe.exe
>> ...
>> C:/Users/shaeg/AppData/Local/Programs/stack/x86_64-windows/ghc-8.0.2/mingw/bin/ld.exe:
>> cannot find -licuuc
>> C:/Users/shaeg/AppData/Local/Programs/stack/x86_64-windows/ghc-8.0.2/mingw/bin/ld.exe:
>> cannot find -licuin
>> C:/Users/shaeg/AppData/Local/Programs/stack/x86_64-windows/ghc-8.0.2/mingw/bin/ld.exe:
>> cannot find -licudt
>> collect2.exe: error: ld returned 1 exit status
>> `gcc.exe' failed in phase `Linker'. (Exit code: 1)
>> Warning: File listed in samChecker3.cabal file does not exist: README.md
>>
>> --  While building package samChecker3-0.1.0.0 using:
>>       
>> C:\sr\setup-exe-cache\x86_64-windows\Cabal-simple_Z6RU0evB_1.24.2.0_ghc-8.0.2.exe
>> --builddir=.stack-work\dist\ca59d0ab build lib:samChecker3
>> exe:samChecker3-exe --ghc-options " -ddump-hi -ddump-to-file"
>>     Process exited with code: ExitFailure 1
>>
>> [stack path] results
>> extra-include-dirs: C:\Users\shaeg\AppData\Local\P
>> rograms\stack\x86_64-windows\msys2-20150512\mingw64\include
>> extra-library-dirs: C:\Users\shaeg\AppData\Local\P
>> rograms\stack\x86_64-windows\msys2-20150512\mingw64\lib
>>
>> According to first error message(libicuuc57.dll dose not exist. so
>> program can't start. please re-install the program.), I find the path for
>> libicuuc57.dll, and re-set the extra-library-dirs.
>> C:\Users\shaeg\Documents\Haskell\samChecker3>stack build
>> --extra-lib-dirs=C:\Users\shaeg\AppData\Local\Programs\stack
>> \x86_64-windows\msys2-20150512\mingw64\bin --ghc-options="-static
>> -optl-static"
>> But got the same result.
>>
>> libicuuc75.dll, libicuin57.dll etc files is located in
>> C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows\m
>> sys2-20150512\mingw64\bin
>>
>> How can I fix this error?
>> Thank you so much.
>>
>> Sincerely, S. Chang.
>>
>> ------------------------------------------------
>> Here is my stack path.
>> C:\Users\shaeg\Documents\Haskell\samChecker3>stack path
>> stack-root: C:\sr
>> project-root: C:\Users\shaeg\Documents\Haskell\samChecker3
>> config-location: C:\Users\shaeg\Documents\Haskell\samChecker3\stack.yaml
>> bin-path: .;C:\sr\snapshots\7dd4ddea\bin;C:\Users\shaeg\AppData\Local\
>> Programs\stack\x86_64-windows\ghc-8.0.2\bin;C:\Users\shaeg\
>> AppData\Local\Programs\stack\x86_64-windows\ghc-8.0.2\
>> mingw\bin;C:\Users\shaeg\AppData\Local\Programs\stack\
>> x86_64-windows\msys2-20150512\mingw64\bin;C:\Users\shaeg\
>> AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\
>> usr\bin;C:\Users\shaeg\AppData\Local\Programs\stack\
>> x86_64-windows\msys2-20150512\usr\local\bin;C:\Program Files
>> (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS
>> Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\W
>> bem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files
>> (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program
>> Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files
>> (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program
>> Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program
>> Files\Intel\IntelSGXPSW\bin\x64\Release\;C:\Program
>> Files\Intel\IntelSGXPSW\bin\win32\Release\;c:\Program
>> Files\Intel\WiFi\bin\;c:\Program Files\Common
>> Files\Intel\WirelessCommon\;C:\Program Files\Hewlett-Packard\SimplePa
>> ss\;C:\Users\shaeg\AppData\Roaming\local\bin;C:\Users\
>> shaeg\AppData\Local\Microsoft\WindowsApps
>> programs: C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows
>> compiler-exe: C:\Users\shaeg\AppData\Local\P
>> rograms\stack\x86_64-windows\ghc-8.0.2\bin\ghc.EXE
>> compiler-bin: C:\Users\shaeg\AppData\Local\P
>> rograms\stack\x86_64-windows\ghc-8.0.2\bin
>> local-bin: C:\Users\shaeg\AppData\Roaming\local\bin
>> extra-include-dirs: C:\Users\shaeg\AppData\Local\P
>> rograms\stack\x86_64-windows\msys2-20150512\mingw64\include
>> extra-library-dirs: C:\Users\shaeg\AppData\Local\P
>> rograms\stack\x86_64-windows\msys2-20150512\mingw64\lib
>> snapshot-pkg-db: C:\sr\snapshots\7dd4ddea\pkgdb
>> local-pkg-db: C:\Users\shaeg\Documents\Haskell\samChecker3\.stack-work\
>> install\02136e14\pkgdb
>> global-pkg-db: C:\Users\shaeg\AppData\Local\P
>> rograms\stack\x86_64-windows\ghc-8.0.2\lib\package.conf.d
>> ghc-package-path: C:\Users\shaeg\Documents\Haske
>> ll\samChecker3\.stack-work\install\02136e14\pkgdb;C:\sr\
>> snapshots\7dd4ddea\pkgdb;C:\Users\shaeg\AppData\Local\Prog
>> rams\stack\x86_64-windows\ghc-8.0.2\lib\package.conf.d
>> snapshot-install-root: C:\sr\snapshots\7dd4ddea
>> local-install-root: C:\Users\shaeg\Documents\Haske
>> ll\samChecker3\.stack-work\install\02136e14
>> snapshot-doc-root: C:\sr\snapshots\7dd4ddea\doc
>> local-doc-root: C:\Users\shaeg\Documents\Haskell\samChecker3\.stack-work\
>> install\02136e14\doc
>> dist-dir: .stack-work\dist\ca59d0ab
>> local-hpc-root: C:\Users\shaeg\Documents\Haskell\samChecker3\.stack-work\
>> install\02136e14\hpc
>> local-bin-path: C:\Users\shaeg\AppData\Roaming\local\bin
>> ghc-paths: C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows
>>
> --
> You received this message because you are subscribed to the Google Groups
> "haskell-stack" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/haskell-stack/a7be59d2-09d3-40f8-930b-eda4fbc0ed57%
> 40googlegroups.com
> <https://groups.google.com/d/msgid/haskell-stack/a7be59d2-09d3-40f8-930b-eda4fbc0ed57%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"haskell-stack" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/haskell-stack/CAPW%2BkkZWqvpZzvxmFj3Fv4-ZEtw%2BRjGcZiX5b5howfS-9e0kVQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to