이렇게 소스코딩해 보세요.
안되면 입력파일을 메일로 보내주시기 바랍니다. ^^
Option Explicit
Sub main()
''필수 변수 선언 Dim 인수1, 인수2, i, 버퍼 As Variant ''핵심 변수 선언 Dim 열차코드, 월이용횟수, 여행거리, 탑승인원, 합계(1000), 좌석코드(1000), 고객번호(1000), j, Temp, Num As Variant ''인수 처리 인수1 = Val(Left(Command, InStr(Command, " "))) 인수2 = Val(Mid(Command, InStr(Command, " "))) ''입력 파일 처리 Open "c:\c_it\data\abc015.txt" For Input As #1 For i = 1 To 인수2 Line Input #1, 버퍼 If i >= 인수1 Then ''변수 저장 열차코드 = Trim(Mid(버퍼, 7, 1)) 월이용횟수 = Val(Mid(버퍼, 32, 2)) 여행거리 = Val(Mid(버퍼, 27, 5)) 탑승인원 = Val(Mid(버퍼, 24, 3)) ''배열변수 구하기 If 열차코드 = "Z" Or 월이용횟수 >= 7 Then Num = Num + 1 합계(Num) = 여행거리 - 탑승인원 좌석코드(Num) = Trim(Mid(버퍼, 8, 2)) 고객번호(Num) = Val(Mid(버퍼, 1, 5)) End If End If Next i ''정렬(합계 내림차순 or (합계 같음 and 고객번호 오름차순)) For i = 1 To Num For j = i To Num If 합계(i) < 합계(j) Or _ (합계(i) = 합계(j) And 고객번호(i) > 고객번호(j)) Then Temp = 합계(i) 합계(i) = 합계(j) 합계(j) = Temp Temp = 좌석코드(i) 좌석코드(i) = 좌석코드(j) 좌석코드(j) = Temp Temp = 고객번호(i) 고객번호(i) = 고객번호(j) 고객번호(j) = Temp End If Next j Next i Close #1 ''출력 파일 처리 Open "c:\c_it\data\ans1.txt" For Output As #2 Print #2, 인수1, 인수2, 좌석코드(11) Close #2 End Sub |