<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=StartprogrammingusingObjectPascal%3ACreatingAndWritingIntoTextFile</id>
	<title>StartprogrammingusingObjectPascal:CreatingAndWritingIntoTextFile - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=StartprogrammingusingObjectPascal%3ACreatingAndWritingIntoTextFile"/>
	<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:CreatingAndWritingIntoTextFile&amp;action=history"/>
	<updated>2026-05-01T07:47:03Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:CreatingAndWritingIntoTextFile&amp;diff=234&amp;oldid=prev</id>
		<title>Onionmixer: 번역 수정 및 스타일 수정</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:CreatingAndWritingIntoTextFile&amp;diff=234&amp;oldid=prev"/>
		<updated>2013-04-04T10:00:45Z</updated>

		<summary type="html">&lt;p&gt;번역 수정 및 스타일 수정&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==텍스트 파일 만들고 기록하기==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
    FileName: string;&lt;br /&gt;
    F: TextFile;&lt;br /&gt;
    Line: string;&lt;br /&gt;
    ReadyToCreate: Boolean;&lt;br /&gt;
    Ans: Char;&lt;br /&gt;
    i: Integer;&lt;br /&gt;
begin&lt;br /&gt;
    Write(&amp;#039;Input a new file name: &amp;#039;);&lt;br /&gt;
    Readln(FileName);&lt;br /&gt;
&lt;br /&gt;
    // Check if file exists, warn user if it is already exist&lt;br /&gt;
    if FileExists(FileName) then&lt;br /&gt;
    begin&lt;br /&gt;
        Write(&amp;#039;File already exist, did you want to overwrite it? (y/n)&amp;#039;);&lt;br /&gt;
        Readln(Ans);&lt;br /&gt;
        if upcase(Ans) = &amp;#039;Y&amp;#039; then&lt;br /&gt;
            ReadyToCreate:= True&lt;br /&gt;
        else&lt;br /&gt;
            ReadyToCreate:= False;&lt;br /&gt;
    end&lt;br /&gt;
    else // File does not exist&lt;br /&gt;
        ReadyToCreate:= True;&lt;br /&gt;
&lt;br /&gt;
    if ReadyToCreate then&lt;br /&gt;
    begin&lt;br /&gt;
        // Link file variable (F) with physical file (FileName)&lt;br /&gt;
        AssignFile(F, FileName);&lt;br /&gt;
        Rewrite(F); // Create new file for writing&lt;br /&gt;
        Writeln(&amp;#039;Please input file contents line by line, &amp;#039;&lt;br /&gt;
            , &amp;#039;when you finish write % then press enter&amp;#039;);&lt;br /&gt;
        i:= 1;&lt;br /&gt;
        repeat&lt;br /&gt;
            Write(&amp;#039;Line # &amp;#039;, i, &amp;#039;:&amp;#039;);&lt;br /&gt;
            Inc(i);&lt;br /&gt;
            Readln(Line);&lt;br /&gt;
            if Line &amp;lt;&amp;gt; &amp;#039;%&amp;#039; then&lt;br /&gt;
                Writeln(F, Line); // Write line into text file&lt;br /&gt;
        until Line = &amp;#039;%&amp;#039;;&lt;br /&gt;
        CloseFile(F); // Release F and FileName connection, flush buffer&lt;br /&gt;
    end&lt;br /&gt;
    else // file already exist and user does not want to overwrite it&lt;br /&gt;
        Writeln(&amp;#039;Doing nothing&amp;#039;);&lt;br /&gt;
    Write(&amp;#039;Press enter key to close..&amp;#039;);&lt;br /&gt;
    Readln;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이 예제에서는 많은 중요한 요소들을 사용했습니다.&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Boolean&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; 형식:&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
ReadyToCreate: Boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;이 형식은 &amp;#039;&amp;#039;True&amp;#039;&amp;#039;값과 &amp;#039;&amp;#039;False&amp;#039;&amp;#039;값 둘 중 하나만 유지할 수 있습니다. 이 값들은 &amp;#039;&amp;#039;if&amp;#039;&amp;#039; 조건문, &amp;#039;&amp;#039;while&amp;#039;&amp;#039; 순환문 또는 &amp;#039;&amp;#039;repeat&amp;#039;&amp;#039; 순환문에서 바로 사용할 수 있습니다.&amp;lt;BR&amp;gt;앞의 예제에서 다음과 같은 if 조건문을 사용했습니다.&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
if Marks[i] &amp;gt; Max then&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;여기서도 &amp;#039;&amp;#039;True&amp;#039;&amp;#039; 또는 &amp;#039;&amp;#039;False&amp;#039;&amp;#039;를 반환합니다.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;upcase&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; 함수:&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
if upcase(Ans) = &amp;#039;Y&amp;#039; then&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;이 구문은 파일이 존재할 때 실행됩니다. 프로그램은 기존의 파일에 덮어쓸 것인지에 대한 여부를 사용자에게 경고할 것입니다. 사용자가 계속하기를 원한다면, 소문자 &amp;#039;&amp;#039;y&amp;#039;&amp;#039;나 대문자 &amp;#039;&amp;#039;Y&amp;#039;&amp;#039;를 입력할 것입니다. upcase 함수는 입력한 문자가 소문자인 경우 대문자로 바꿀 것입니다.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Rewrite&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; 프로시저:&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
Rewrite(F); // Create new file for writing&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Rewrite 프로시저는 새로운 빈 파일을 만들 때 사용합니다. 파일이 이미 존재한다면, 지우고 덮어쓸 것입니다. 텍스트 파일인 경우 쓰기 전용으로도 엽니다.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Writeln(F, .. )&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; 프로시저:&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
Writeln(F, Line); // Write line into text file&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;이 프로시저는 텍스트 파일에 문자열이나 변수를 기록하고, 이들 데이터의 마지막에 ASCII CODE 13번과 10번으로 표현 하는 줄바꿈 문자인 캐리지 리턴/라인 피드의 조합(CR/LF)을 붙이기 위해 사용합니다.&amp;lt;BR&amp;gt;이 문자들은 콘솔 창에 표시되는건 아니지만, 화면에 나타나는 커서를 새로운 줄로 이동할 것입니다.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Inc&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; 프로시저:&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
Inc(i);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;이 프로시저는 정수형 변수를 1만큼 증가합니다. 다음 구문과 같습니다.&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
i := i + 1;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;CloseFile&amp;#039;&amp;#039;&amp;#039; 프로시저:&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
        CloseFile(F); // Release F and FileName connection&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;앞서 보신 바와 같이, &amp;#039;&amp;#039;CloseFile&amp;#039;&amp;#039; 프로시저는 운영체제로 파일을 돌려줍니다. 덧붙여서, 텍스트 파일에 기록할 때 기록버퍼를 비우는 추가적인 작업을 수행합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
텍스트 파일의 버퍼링은 텍스트 파일을 빠르게 다루게 해주는 기능입니다. 단일 줄이나 문자를 디스크나 다른 저장 매체에 바로 기록(메모리에 기록하는 것과 비교했을 때 매우 느립니다)하는 대신에, 프로그램은 이 항목들을 메모리 버퍼에 기록할 것입니다. 버퍼가 거의 가득 찼을 때, 하드 디스크와 같은 영구 저장 매체에 몰아 넣습니다(강제로 기록합니다). 이 동작은 기록을 빠르게 해주지만, 전원이 갑자기 나갔을 경우 (버퍼에 있는)데이터들을 잃을 수 있는 위험성을 더할 것입니다. 데이터 손실을 최소화하기 위해, 파일에 기록을 끝내고 나서 바로 파일을 닫아주거나 버퍼를 명시적으로 비우기 위해 Flush 프로시저를 호출할 것입니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:StartprogrammingusingObjectPascal]]&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
	<entry>
		<id>https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:CreatingAndWritingIntoTextFile&amp;diff=232&amp;oldid=prev</id>
		<title>Onionmixer: SPOP 텍스트파일만들고기록하기 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:CreatingAndWritingIntoTextFile&amp;diff=232&amp;oldid=prev"/>
		<updated>2012-07-26T05:21:46Z</updated>

		<summary type="html">&lt;p&gt;SPOP 텍스트파일만들고기록하기 페이지 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;===텍스트 파일 만들고 기록하기===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
    FileName: string;&lt;br /&gt;
    F: TextFile;&lt;br /&gt;
    Line: string;&lt;br /&gt;
    ReadyToCreate: Boolean;&lt;br /&gt;
    Ans: Char;&lt;br /&gt;
    i: Integer;&lt;br /&gt;
begin&lt;br /&gt;
    Write(&amp;#039;Input a new file name: &amp;#039;);&lt;br /&gt;
    Readln(FileName);&lt;br /&gt;
&lt;br /&gt;
    // Check if file exists, warn user if it is already exist&lt;br /&gt;
    if FileExists(FileName) then&lt;br /&gt;
    begin&lt;br /&gt;
        Write(&amp;#039;File already exist, did you want to overwrite it? (y/n)&amp;#039;);&lt;br /&gt;
        Readln(Ans);&lt;br /&gt;
        if upcase(Ans) = &amp;#039;Y&amp;#039; then&lt;br /&gt;
            ReadyToCreate:= True&lt;br /&gt;
        else&lt;br /&gt;
            ReadyToCreate:= False;&lt;br /&gt;
    end&lt;br /&gt;
    else // File does not exist&lt;br /&gt;
        ReadyToCreate:= True;&lt;br /&gt;
&lt;br /&gt;
    if ReadyToCreate then&lt;br /&gt;
    begin&lt;br /&gt;
        // Link file variable (F) with physical file (FileName)&lt;br /&gt;
        AssignFile(F, FileName);&lt;br /&gt;
        Rewrite(F); // Create new file for writing&lt;br /&gt;
        Writeln(&amp;#039;Please input file contents line by line, &amp;#039;&lt;br /&gt;
            , &amp;#039;when you finish write % then press enter&amp;#039;);&lt;br /&gt;
        i:= 1;&lt;br /&gt;
        repeat&lt;br /&gt;
            Write(&amp;#039;Line # &amp;#039;, i, &amp;#039;:&amp;#039;);&lt;br /&gt;
            Inc(i);&lt;br /&gt;
            Readln(Line);&lt;br /&gt;
            if Line &amp;lt;&amp;gt; &amp;#039;%&amp;#039; then&lt;br /&gt;
                Writeln(F, Line); // Write line into text file&lt;br /&gt;
        until Line = &amp;#039;%&amp;#039;;&lt;br /&gt;
        CloseFile(F); // Release F and FileName connection, flush buffer&lt;br /&gt;
    end&lt;br /&gt;
    else // file already exist and user does not want to overwrite it&lt;br /&gt;
        Writeln(&amp;#039;Doing nothing&amp;#039;);&lt;br /&gt;
    Write(&amp;#039;Press enter key to close..&amp;#039;);&lt;br /&gt;
    Readln;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
이 예제에서는 많은 중요한 것들을 사용했습니다.&lt;br /&gt;
&lt;br /&gt;
1. &amp;#039;&amp;#039;&amp;#039;Boolean&amp;#039;&amp;#039;&amp;#039; 형식:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
ReadyToCreate: Boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
이 형식은 &amp;#039;&amp;#039;True&amp;#039;&amp;#039;값과 &amp;#039;&amp;#039;False&amp;#039;&amp;#039;값 둘 중 하나만 유지할 수 있습니다. 이 값들은 if 조건문, while 순환문 또는 repeat 순환문에서 바로 사용할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
앞의 예제에서 다음과 같은 if 조건문을 사용했습니다.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
if Marks[i] &amp;gt; Max then&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
여기서도 &amp;#039;&amp;#039;True&amp;#039;&amp;#039; 또는 &amp;#039;&amp;#039;False&amp;#039;&amp;#039;를 되돌립니다.&lt;br /&gt;
&lt;br /&gt;
2. &amp;#039;&amp;#039;&amp;#039;upcase&amp;#039;&amp;#039;&amp;#039; 함수:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
if upcase(Ans) = &amp;#039;Y&amp;#039; then&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
이 구문은 파일이 존재할 때 실행합니다. 프로그램은 기존의 파일에 덮어쓸 것인지에 대한 여부를 사용자에게 경고할 것입니다. 사용자가 계속하기를 원한다면, 소문자 &amp;#039;&amp;#039;y&amp;#039;&amp;#039;나 대문자 &amp;#039;&amp;#039;Y&amp;#039;&amp;#039;를 입력할 것입니다. upcase 함수는 입력한 문자가 소문자인 경우 대문자로 바꿀 것입니다.&lt;br /&gt;
&lt;br /&gt;
3. &amp;#039;&amp;#039;&amp;#039;Rewrite&amp;#039;&amp;#039;&amp;#039; 프로시저:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
Rewrite(F); // Create new file for writing&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rewrite 프로시저는 새로운 빈 파일을 만들 때 사용합니다. 파일이 이미 존재한다면, 지우고 덮어쓸 것입니다. 텍스트 파일인 경우 쓰기 전용으로도 엽니다.&lt;br /&gt;
&lt;br /&gt;
4. &amp;#039;&amp;#039;&amp;#039;Writeln(F, .. )&amp;#039;&amp;#039;&amp;#039; 프로시저:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
Writeln(F, Line); // Write line into text file&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
이 프로시저는 텍스트 파일에 문자열이나 변수를 기록하고, 이들 데이터에 숫자 13과 10으로 각각 표현되는 캐리지 리턴/라인 피드의 조합인 줄의 마지막 문자를 붙이기 위해 사용합니다.&lt;br /&gt;
&lt;br /&gt;
이 문자들은 콘솔 창에 표시할 수 없지만, 화면에 나타나는 커서를 새로운 줄로 이동할 것입니다.&lt;br /&gt;
&lt;br /&gt;
5. &amp;#039;&amp;#039;&amp;#039;Inc&amp;#039;&amp;#039;&amp;#039; 프로시저:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
Inc(i);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
이 프로시저는 정수형 변수를 1만큼 증가합니다. 다음 구문과 같습니다.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
i := i + 1;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. &amp;#039;&amp;#039;&amp;#039;CloseFile&amp;#039;&amp;#039;&amp;#039; 프로시저:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
        CloseFile(F); // Release F and FileName connection&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
앞서 보신 바와 같이, &amp;#039;&amp;#039;CloseFile&amp;#039;&amp;#039; 프로시저는 운영체제로 파일을 놓아둡니다. 덧붙이자면, 텍스트 파일에 기록할 때 기록버퍼를 비우는 추가적인 작업을 수행합니다.&lt;br /&gt;
&lt;br /&gt;
텍스트 파일의 버퍼링은 텍스트 파일을 빠르게 다루게 해주는 기능입니다. 단일 줄이나 문자를 디스크나 다른 저장 매체에 바로 기록(메모리에 기록하는 것과 비교했을 때 매우 느립니다)하는 대신에, 프로그램은 이 항목들을 메모리 버퍼에 기록할 것입니다. 버퍼가 거의 가득 찼을 때, 하드 디스크와 같은 영구 저장 매체에 몰아 넣습니다(강제로 기록합니다). 이 동작은 기록을 빠르게 해주지만, 전원이 갑자기 나갔을 경우 (버퍼에 있는)데이터들을 잃을 수 있는 위험성을 더할 것입니다. 데이터 손실을 최소화하기 위해, 파일에 기록을 끝내고 나서 바로 파일을 닫아주거나 버퍼를 명시적으로 비우기 위해 Flush 프로시저를 호출할 것입니다.&lt;br /&gt;
[[Category:StartprogrammingusingObjectPascal]]&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>