유닉스 소스 구현 좀,,
유닉스 좀 여쭤봐도 될까요?
data1.txt 파일 안에요,,
4518430093208268S1030441201004
4518426837844004F9270441201409
3562912094860004F570121A201101
이렇게 나열된 숫자가 예를 들어 100개라면 한 줄씩 읽습니다.
한 줄씩 읽고나서 data2.txt. 파일에 아래와 같이 저장하고 싶어요
numarray[0] 4518430093208268 >> 16자리
numarray[1] S103 >> 4자리
numarray[2] 04 >> 2자리
numarray[3] 4 >> 1자리
numarray[4] 1 >> 1자리
numarray[5] 6 >> 1자리
numarray[2] 가 2자리 이면 04 > 004로 0을 추가하구요
numarray[3]은 0~9 또는 A~G 중에 하나가 입력되면 앞에 숫자 1이 추가 되고
numarray[4] 는 아래와 같이
입력값 출력값
1 111
4 121
2 122
7 123
5 131
3 132
6 140
9 160
출력값이 나오게 하고 싶은데요,,
data2.txt에는
"UPDATE CDH SET SCDHBANKCDE=' " + numArray[2]+ " '
, SCDHBILLCLASSCDE = ' " + numArray[3] + " '
, SCDHBILLPLACECDE=' "+ numArray[4] +" '
WHERE SCDHACCTKEY='"+numArray[0]+"';"
이렇게 값을 받아오게 하고 싶은데 조금만 알려주시면 안될까요?
numarray[5] 6 >> 1자리 ==>
numarray[5] 6 >> 1자리 ==> numarray[5] 201004 >> 6자리 입니다..ㅠ
C언어라면 파일 열고 읽어오는건 fopen,
C언어라면
파일 열고 읽어오는건 fopen, fscanf를 이용하면 될 거고요
자릿수가 정해져 있으므로 그냥 문자열을 배열로 간주해서 중간에 끊고, atoi로 형변환해주면 되겠죠. strstr을 써도 될 것 같군요
numarray[2]에서 0을 추가하는건 strcat으로 합친 후에 형변환하면 되겠고요
numarray[3]이랑 numarray[4]를 처리하는건 직접 고민해 보세요
data2.txt에 출력할때는 fprintf를 쓰면 될건데, 그 전에 strcat으로 잘 합쳐서 내보내야겠죠
질문에 언어가 특정되어 있지 않아서 매우 대답하기 어려웠습니다. 유닉스에서 쓸 수 있는 언어가 한두가지여야 말이죠...
bash, perl, python, C++, Fortran 등등...
피할 수 있을때 즐겨라! http://melotopia.net/b
아,,죄송해여... 유닉스 bash였습니다.ㅠㅠ
아,,죄송해여... 유닉스 bash였습니다.ㅠㅠ
#!/bin/bashcat data1.txt |
대략 이정도 코드를 기본으로 직접 고민해보시길..
numarray[3] 과 numarray[4] 에
numarray[3] 과 numarray[4] 에 대한 설명이 바뀐 것 같지만,
아무튼 csh 로 작성된 소스를 이미 누군가로부터 얻으신 것 같으니, bash 도.
감사합니다.. 그런데요 conv_3()에서요 7만
감사합니다.. 그런데요 conv_3()에서요 7만 예외로 31 숫자가 입력이 되려면 어떻게 하는지와 공백이 입력되면 공백이 출력이 되게 가능한가요?
아무거나 주력으로 삼을 스크립트 언어를 정해서 매뉴얼
아무거나 주력으로 삼을 스크립트 언어를 정해서 매뉴얼 보고 필요할 때 마다 하나씩 해결하며 공부하시는 것도 나쁘진 않습니다.
댓글 달기