2016-10-29 2 views
0

Qbasic에서 사람이 자신의 이름을 입력하고 관리자 또는 원치 않는 사용자로 레이블을 지정할 수있는 프로그램을 만들려고합니다. 내 기본 설정을 내 프로그램에 저장하려면 어떻게합니까? 당신은 같은과 사용자 이름을 inputed 경우Qbasic 파일에 이름을 저장하는 방법은 무엇입니까?

+0

나는 OPEN 명령을 사용하여 시도했지만 나는 그것을 제대로 사용할 수 없습니다입니다. 또한 나는 그렇지 않습니다. OPEN 명령 뒤에있는 논리를 이해하십시오. –

답변

1

,

INPUT "Type your username: ", uName$ 

단순히 이러한 명령을 사용하여 파일에 저장하려면 :

DEFINT A-Z 

'Error handler for the first time we run the program. The data file won't exist, so we create it. 
ON ERROR GOTO FileNotExist 

'Create a type and an Array of users that would include Username and the Status (adminstrator vs. Unwanted user) 
TYPE user 
    Uname AS STRING * 16 
    Status AS STRING * 1 
END TYPE 

DIM Users(1 TO 100) AS user 

'Gets all the users stored in the file. i is a variable which represents the number of users before adding a new user 
i = 0 

OPEN "User.txt" FOR INPUT AS #1 
WHILE NOT EOF(1) 
    i = i + 1 
    INPUT #1, Users(i).Uname 
    INPUT #1, Users(i).Status 
WEND 
CLOSE #1 


TryAgain: 

'Gets info for the new user 
CLS 
INPUT "User name: ", Users(i + 1).Uname 
PRINT "Admin (a), Unwanted user (u), or Regular user (r) ?" 
Users(i + 1).Status = LCASE$(INPUT$(1)) 

'Ensure there are no blank lines in the file 
IF Users(i + 1).Uname = "" OR Users(i + 1).Status = "" THEN GOTO TryAgain 


'Outputs user data to the file "User.txt" 
OPEN "User.txt" FOR OUTPUT AS #1 
    FOR j = 1 TO i + 1 
    PRINT #1, Users(j).Uname 
    PRINT #1, Users(j).Status 
    NEXT j 
CLOSE #1 


'Just for a closer: Prints all the current users. 
CLS 
FOR j = 1 TO i + 1 
    PRINT Users(j).Uname, 
    IF Users(j).Status = "a" THEN PRINT "Amdinistrator" ELSE IF Users(j).Status = "u" THEN PRINT "Unwanted User" ELSE IF Users(j).Status = "r" THEN PRINT "Regular user" ELSE PRINT Users(j).Status 
NEXT j 
END 



'*** ERROR HANDLER: *** 

FileNotExist:   
OPEN "User.txt" FOR OUTPUT AS #1 
CLOSE 
RESUME 
:

OPEN "User.dat" FOR OUTPUT AS #1 
    PRINT #1, uName$ 
CLOSE #1 

여기에 완전한 프로그램을

1

파일에 이름을 저장하려면 WRITE 문을 사용해야합니다.
예는 :

OPEN "Name.txt" FOR OUTPUT AS #1 
INPUT"Enter a name";a$ 
WRITE #1,a$ 
CLOSE #1 
END 
관련 문제