<?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%3ANewsDatabaseApplication</id>
	<title>StartprogrammingusingObjectPascal:NewsDatabaseApplication - 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%3ANewsDatabaseApplication"/>
	<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:NewsDatabaseApplication&amp;action=history"/>
	<updated>2026-05-01T11:40:40Z</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:NewsDatabaseApplication&amp;diff=309&amp;oldid=prev</id>
		<title>Onionmixer: SPOP 뉴스데이터베이스프로그램 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=StartprogrammingusingObjectPascal:NewsDatabaseApplication&amp;diff=309&amp;oldid=prev"/>
		<updated>2012-07-26T10:31:24Z</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;#039;&amp;#039;뉴스 제목&amp;#039;&amp;#039;을 추가하고, 모든 뉴스를 표시하며, &amp;#039;&amp;#039;검색&amp;#039;&amp;#039;하는 세 개의 프로시저와, 사용자가 실행하고자 하는 기능을 사용자에게 선택하도록 &amp;#039;&amp;#039;메뉴를 표시&amp;#039;&amp;#039;하는 하나의 함수가 있습니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
Program news;&lt;br /&gt;
&lt;br /&gt;
{$mode objfpc}{$H+}&lt;br /&gt;
&lt;br /&gt;
uses&lt;br /&gt;
    {$IFDEF UNIX}{$IFDEF UseCThreads}&lt;br /&gt;
    cthreads,&lt;br /&gt;
    {$ENDIF}{$ENDIF}&lt;br /&gt;
    Classes, SysUtils&lt;br /&gt;
    { you can add units after this };&lt;br /&gt;
&lt;br /&gt;
type&lt;br /&gt;
    TNews = record&lt;br /&gt;
        ATime: TDateTime;&lt;br /&gt;
        Title: string[100];&lt;br /&gt;
    end;&lt;br /&gt;
procedure AddTitle;&lt;br /&gt;
var&lt;br /&gt;
    F: file of TNews;&lt;br /&gt;
    News: TNews;&lt;br /&gt;
begin&lt;br /&gt;
    AssignFile(F, &amp;#039;news.dat&amp;#039;);&lt;br /&gt;
    Write(&amp;#039;Input current news title: &amp;#039;);&lt;br /&gt;
    Readln(News.Title);&lt;br /&gt;
    News.ATime:= Now;&lt;br /&gt;
    if FileExists(&amp;#039;news.dat&amp;#039;) then&lt;br /&gt;
    begin&lt;br /&gt;
        FileMode:= 2; // Read/Write&lt;br /&gt;
        Reset(F);&lt;br /&gt;
        Seek(F, System.FileSize(F)); // Go to last record to append&lt;br /&gt;
    end&lt;br /&gt;
    else&lt;br /&gt;
        Rewrite(F);&lt;br /&gt;
    Write(F, News);&lt;br /&gt;
    CloseFile(F);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure ReadAllNews;&lt;br /&gt;
var&lt;br /&gt;
    F: file of TNews;&lt;br /&gt;
    News: TNews;&lt;br /&gt;
begin&lt;br /&gt;
    AssignFile(F, &amp;#039;news.dat&amp;#039;);&lt;br /&gt;
    if FileExists(&amp;#039;news.dat&amp;#039;) then&lt;br /&gt;
    begin&lt;br /&gt;
        Reset(F);&lt;br /&gt;
        while not Eof(F) do&lt;br /&gt;
        begin&lt;br /&gt;
            Read(F, News);&lt;br /&gt;
            Writeln(&amp;#039;------------------------------&amp;#039;);&lt;br /&gt;
            Writeln(&amp;#039;Title: &amp;#039;, News.Title);&lt;br /&gt;
            Writeln(&amp;#039;Time : &amp;#039;, DateTimeToStr(News.ATime));&lt;br /&gt;
        end;&lt;br /&gt;
    CloseFile(F);&lt;br /&gt;
    end&lt;br /&gt;
    else&lt;br /&gt;
        Writeln(&amp;#039;Empty database&amp;#039;);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure Search;&lt;br /&gt;
var&lt;br /&gt;
    F: file of TNews;&lt;br /&gt;
    News: TNews;&lt;br /&gt;
    Keyword: string;&lt;br /&gt;
    Found: Boolean;&lt;br /&gt;
begin&lt;br /&gt;
    AssignFile(F, &amp;#039;news.dat&amp;#039;);&lt;br /&gt;
    Write(&amp;#039;Input keyword to search for: &amp;#039;);&lt;br /&gt;
    Readln(Keyword);&lt;br /&gt;
    Found:= False;&lt;br /&gt;
    if FileExists(&amp;#039;news.dat&amp;#039;) then&lt;br /&gt;
    begin&lt;br /&gt;
    Reset(F);&lt;br /&gt;
    while not Eof(F) do&lt;br /&gt;
    begin&lt;br /&gt;
        Read(F, News);&lt;br /&gt;
        if Pos(LowerCase(Keyword), LowerCase(News.Title)) &amp;gt; 0 then&lt;br /&gt;
        begin&lt;br /&gt;
            Found:= True;&lt;br /&gt;
            Writeln(&amp;#039;------------------------------&amp;#039;);&lt;br /&gt;
            Writeln(&amp;#039;Title: &amp;#039;, News.Title);&lt;br /&gt;
            Writeln(&amp;#039;Time : &amp;#039;, DateTimeToStr(News.ATime));&lt;br /&gt;
        end;&lt;br /&gt;
    end;&lt;br /&gt;
    CloseFile(F);&lt;br /&gt;
    if not Found then&lt;br /&gt;
        Writeln(Keyword, &amp;#039; Not found&amp;#039;);&lt;br /&gt;
    end&lt;br /&gt;
    else&lt;br /&gt;
    Writeln(&amp;#039;Empty database&amp;#039;);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
function Menu: char;&lt;br /&gt;
begin&lt;br /&gt;
    Writeln;&lt;br /&gt;
    Writeln(&amp;#039;...........News database..........&amp;#039;);&lt;br /&gt;
    Writeln(&amp;#039;1. Add news title&amp;#039;);&lt;br /&gt;
    Writeln(&amp;#039;2. Display all news&amp;#039;);&lt;br /&gt;
    Writeln(&amp;#039;3. Search&amp;#039;);&lt;br /&gt;
    Writeln(&amp;#039;x. Exit&amp;#039;);&lt;br /&gt;
    Write(&amp;#039;Please input a selection : &amp;#039;);&lt;br /&gt;
    Readln(Result);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
// Main application&lt;br /&gt;
var&lt;br /&gt;
    Selection: Char;&lt;br /&gt;
begin&lt;br /&gt;
    repeat&lt;br /&gt;
        Selection:= Menu;&lt;br /&gt;
        case Selection of&lt;br /&gt;
        &amp;#039;1&amp;#039;: AddTitle;&lt;br /&gt;
        &amp;#039;2&amp;#039;: ReadAllNews;&lt;br /&gt;
        &amp;#039;3&amp;#039;: Search;&lt;br /&gt;
        end;&lt;br /&gt;
    until LowerCase(Selection) = &amp;#039;x&amp;#039;;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
이 프로그램은 알아보기 쉽고 메인 섹션에는 작고 깔끔한 코드를 지니고 있습니다. 다른 부분에 영향을 주거나 수정하지 않고도 임의의 프로시저에 새로운 기능을 추가할 수 있습니다.&lt;br /&gt;
[[Category:StartprogrammingusingObjectPascal]]&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>