home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-10-26 | 84.2 KB | 2,010 lines |
-
- Åα¿ú½áΦÑ¡¿∩ ¬ óó«ñπ ó »«½Ñ (Prompts)
- -----------------------------------------------------------------
-
- èáªñ«Ñ »«½Ñ ¼«ªÑΓ ¿¼ÑΓ∞ ßó«Ñ ߻ѵ¿Σ¿τ¡«Ñ »α¿ú½áΦÑ¡¿Ñ ¬ óó«ñπ
- ó ¡Ñú« ñá¡¡δσ, ¬«Γ«α«Ñ «íδτ¡« ß«ñÑαª¿Γ ¿¡Σ«α¼áµ¿ε, »«∩ß¡∩εΘπε
- »«½∞º«óáΓѽε, ñ½∩ τÑú« »αÑñ¡áº¡áτÑ¡« ñá¡¡«Ñ »«½Ñ (ßѼá¡Γ¿¬á »«½∩)
- ¿ ¬á¬á∩ ¿¼Ñ¡¡« ¿¡Σ«α¼áµ¿∩ ñ«½ª¡á íδΓ∞ ó ¡Ñú« óóÑñÑ¡á. Æá¬«Ñ
- »α¿ú½áΦÑ¡¿Ñ »αÑñßΓáó½∩ÑΓ ß«í«⌐ ß¿¼ó«½∞¡πε ßΓ᫬π, ¬«Γ«απε
- »«½∞º«óáΓѽ∞ ¿º¼Ñ¡¿Γ∞ ¡Ñ ¼«ªÑΓ. éδ ñ«½ª¡δ ßἿ ߻ѵ¿Σ¿µ¿α«óáΓ∞
- ß«ñÑαªá¡¿Ñ φΓ«⌐ ßΓ᫬¿ ¿ »«º¿µ¿ε ÑÑ αẼÑΘÑ¡¿∩ ó «¬¡Ñ.
- Åα¿ú½áΦÑ¡¿Ñ ¬ óó«ñπ ñá¡¡δσ ñ«½ª¡« ¿¼ÑΓ∞ ñ½¿¡π, ¡Ñ »αÑóδΦáεΘπε
- ñ½¿¡π ßΓ᫬¿ «¬¡á.
-
-
-
- éó«ñ ñá¡¡δσ
- -----------------------------------------------------------------
-
- é »α«µÑßßÑ ßó«Ñ⌐ αáí«Γδ Σπ¡¬µ¿∩ óó«ñá ñá¡¡δσ «íαáíáΓδóáÑΓ
- »«½∩ Φáí½«¡á ó Γ«⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿, ó ¬«Γ«α«⌐ óδ «ßπΘÑßΓó½∩½¿
- ¿σ «»¿ßá¡¿Ñ (¡Ñ »α¿¡¿¼á∩ ó« ó¡¿¼á¡¿Ñ »«º¿µ¿¿ ¿σ αẼÑΘÑ¡¿∩ ó
- Φáí½«¡Ñ), «ßπΘÑßΓó½∩∩ »α¿ φΓ«¼ »α«ßΓÑ⌐Φπε »α«óÑα¬π ñ«»πßΓ¿¼«ßΓ¿
- ¡áσ«ñ∩Θ¿σß∩ ó »«½∩σ Φáí½«¡á ñá¡¡δσ (»αáó¿½∞¡«ßΓ∞ ñáΓδ, »«½Ñ
- ñ«½ª¡« ß«ñÑαªáΓ∞ Γ«½∞¬« µ¿Σαδ ¿ Γ.ñ.). éδ ¼«ªÑΓÑ Γá¬ªÑ «»αÑñѽ¿Γ∞
- «íδτ¡πε (ó ß¼δ᫥ æ¿) Σπ¡¬µ¿ε, ¬«Γ«αá∩ íπñÑΓ «ßπΘÑßΓó½∩Γ∞
- ñá½∞¡Ñ⌐Φπε, 󫺼«ª¡«, ß½«ª¡πε ¿ αạ««íαạπε, »α«óÑα¬π óó«ñ¿¼δσ
- ñá¡¡δσ ¿½¿ «»αÑñѽ¿Γ∞ Σπ¡¬µ¿ε, ¬«Γ«αá∩ íπñÑΓ óδñáóáΓ∞ ó ß½πτáÑ
- óó«ñá ¡Ññ«»πßΓ¿¼δσ ñá¡¡δσ ߻ѵ¿á½∞¡πε help-¿¡Σ«α¼áµ¿ε
- »«½∞º«óáΓѽε. é »α«µÑßßÑ óó«ñá ñá¡¡δσ ó Φáí½«¡ ¿ß»«½∞ºπÑΓß∩
- óδñѽѡ¿Ñ ó ß««ΓóÑΓßΓó¿¿ ß π¬áºá¡¡δ¼¿ áΓα¿íπΓἿ (ACCENT) µóÑΓá
- «¬¡á í«½ÑÑ ∩ન¼ Γ«¡«¼ »«½Ñ⌐, ó ¬«Γ«αδÑ »αÑñ»«½áúáÑΓß∩ óó«ñ
- ñá¡¡δσ. Åα¿ φΓ«¼ ¬παß«α ¡á φ¬αá¡Ñ ¬«¼»∞εΓÑαá »ÑαÑσ«ñ¿Γ ó
- ß««ΓóÑΓßΓóπεΘπε »«º¿µ¿ε »«½∩. é ß½πτáÑ, Ñß½¿ »«½∞º«óáΓѽ∞
- ¿¡¿µ¿¿απÑΓ ñαπú«⌐ »«α∩ñ«¬ óó«ñá ñá¡¡δσ, »ÑαÑσ«ñ∩ «Γ »«½∩ ¬ »«½ε,
- Γ« óδñѽѡ¿Ñ ß½ÑñπεΘÑú«, óδíαá¡¡«ú« »«½∞º«óáΓѽѼ »«½∩ óó«ñá, ¿
- »ÑαѼÑΘÑ¡¿Ñ ¬παß«αá Γá¬ªÑ «ßπΘÑßΓó½∩ÑΓß∩ »α«úαá¼¼¡«.
-
-
-
- - 2 -
-
- öπ¡¬µ¿¿ ßí«αá ñá¡¡δσ
- -----------------------------------------------------------------
-
- ¥Γ¿ Σπ¡¬µ¿¿, ∩ó½∩εΘ¿Ñß∩ í¿í½¿«ΓÑτ¡δ¼¿ Σπ¡¬µ¿∩¼¿, óáΦá
- »α«úαá¼¼á Γᬠ¿½¿ ¿¡áτÑ óδºδóáÑΓ »α¿ ¿ß»«½∞º«óá¡¿¿ «¬¡á ß
- Φáí½«¡«¼ óó«ñá ñá¡¡δσ. çừ¼¡¿ΓÑ, τΓ« óδ ñ«½ª¡δ ó¡áτá½Ñ
- πßΓá¡«ó¿Γ∞ «¬¡«, á ½¿Φ∞ ºáΓѼ ¿ß»«½∞º«óáΓ∞ φΓ¿ Σπ¡¬µ¿¿.
-
- void init_template(WINDOW *wnd)
-
- ¥Γá Σπ¡¬µ¿∩ ¿¡¿µ¿á½¿º¿απÑΓ «¬¡« ñ½∩ ¿ß»«½∞º«óá¡¿∩ ó ¡Ñ¼
- Φáí½«¡á óó«ñá ñá¡¡δσ. Ä¡á πßΓá¡áó½¿óáÑΓ ßó∩º¡«⌐ ß»¿ß«¬ ßΓαπ¬Γπα
- FIELD ¿ »α«¿ºó«ñ¿Γ «τ¿ßΓ¬π óßÑσ ßπΘÑßΓóπεΘ¿σ ñÑß¬α¿»Γ«α«ó.
- æΓαπ¬Γπαá FIELD, «»¿ßδóáεΘá∩ σáαá¬ΓÑα¿ßΓ¿¬¿ »«½Ñ⌐ óó«ñá ñá¡¡δσ,
- «»αÑñѽѡá ó twindow.h (ß¼. â½áóπ 6). öπ¡¬µ¿∩ inint_template
- »αÑñ¡áº¡áτÑ¡á ñ½∩ óδ»«½¡Ñ¡¿∩ ñóπσ ºáñáτ. é«-»Ñαóδσ, «¡á
- ¿¡¿µ¿á½¿º¿απÑΓ «¬¡«; ó«-óΓ«αδσ, Ñß½¿ «¬¡« ¿¡¿µ¿á½¿º¿α«óá¡«, «¡á
- «ßπΘÑßΓó½∩ÑΓ »«¿ß¬ ¿ π¡¿τΓ«ªÑ¡¿Ñ óßÑσ πßΓá¡«ó½Ñ¡¡δσ ¡á ñá¡¡δ⌐
- ¼«¼Ñ¡Γ »«½Ñ⌐ «¬¡á; ß½Ññ«óáΓѽ∞¡«, ¿ß»«½∞º«óá¡¿Ñ φΓ«⌐ Σπ¡¬µ¿¿
- 󫺼«ª¡« ó ß¿Γπᵿ¿, ¬«úñá Φáí½«¡ «¬¡á ¡Ñ ∩ó½∩ÑΓß∩ ñ«ßΓáΓ«τ¡«
- í«½∞Φ¿¼, Γᬠ¬á¬ ¿ß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿¿ »α¿ó«ñ¿Γ ¬ «ßó«í«ªñÑ¡¿ε
- ßΓαπ¬Γπα FIELD.
-
- FIELD *establish_field
- (WINDOW *wnd,int x,int y,char *msk,char *bf,int t)
-
- ¥Γá Σπ¡¬µ¿∩ πßΓá¡áó½¿óáÑΓ »«½∩ óó«ñá ñá¡¡δσ ó «¬¡Ñ, ¬«Γ«α«Ñ
- í佫 ¿¡¿µ¿á½¿º¿α«óá¡« Σπ¡¬µ¿Ñ⌐ init_template ¬á¬ «¬¡« ß Φáí½«¡«¼
- óó«ñá ñá¡¡δσ. 濼ó«½δ x ¿ y ßπΓ∞ ¬««αñ¿¡áΓδ, ߻ѵ¿Σ¿µ¿απεΘ¿Ñ
- αẼÑΘÑ¡¿Ñ ¼á߬¿ »«½∩ óó«ñá, »α¿τѼ »αÑñ»«τΓ¿Γѽ∞¡ÑÑ π¬áºδóáΓ∞
- ¬««αñ¿¡áΓδ «Γ¡«ß¿Γѽ∞¡« «¬¡á, á ¡Ñ φ¬αá¡á. ô¬áºáΓѽ∞ bf ßπΓ∞
- π¬áºáΓѽ∞ ¡á «»αÑñѽ∩Ѽδ⌐ »α¿ «íαáΘÑ¡¿¿ íπΣÑα ßí«αá ñá¡¡δσ.
- Åáαá¼ÑΓα t (º¡áτÑ¡¿Ñ Γ¿»á integer) π¬áºδóáÑΓ Γ¿» »«½∩ óó«ñá
- ñá¡¡δσ. Éẽ¿τáεΓ ß½ÑñπεΘ¿Ñ Γ¿»δ »«½Ñ⌐:
-
- Ç = á½Σáó¿Γ¡«-µ¿Σα«ó«Ñ
-
- - 3 -
- N = µ¿Σα«ó«Ñ, ¡Ñº¡áτáΘ¿Ñ αáºα∩ñδ ºá»«½¡Ñ¡δ »α«íѽἿ
- Z = µ¿Σα«ó«Ñ, ¡Ñº¡áτáΘ¿Ñ αáºα∩ñδ ºá»«½¡Ñ¡δ ¡π½∩¼¿
- æ = »«½Ñ ñѡѪ¡«⌐ Ññ¿¡¿µδ
- D = »«½Ñ ñáΓδ
-
- ô¬áºáΓѽ∞ msk ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ ¡á ß¿¼ó«½ ¼á߬¿, ¬«Γ«αδ⌐
- «»αÑñѽ∩ÑΓ ñ½¿¡π »«½∩ ¿ π»αáó½∩ÑΓ «Γ«íαáªÑ¡¿Ñ¼ ß¿¼ó«½á »π¡¬Γπᵿ¿
- ¡á φ¬αá¡Ñ (»α¿τѼ »«ß½Ññ¡¿Ñ ¡Ñ ¬«¡Γα«½¿απεΓß∩ ó íπΣÑα ßí«αá
- ñá¡¡δσ »«½∩). îá߬á ó¬½ετáÑΓ ó ßÑí∩ «íδτ¡« ¡Ñ߬«½∞¬« ß¿¼ó«½«ó.
- æ¿¼ó«½ »«ñτÑનóá¡¿∩ π¬áºδóáÑΓ »«º¿µ¿ε ß¿¼ó«½á, ¬«Γ«αδ⌐ ñ«½ªÑ¡
- íδΓ∞ óóÑñÑ¡ ó ñá¡¡«¼ ¼ÑßΓÑ. îáßß¿ó bf ñ«½ªÑ¡ ß«ñÑαªáΓ∞ ßΓ«½∞¬«
- ß¿¼ó«½«ó, ߬«½∞¬« ß¿¼ó«½«ó »«ñτÑનóá¡¿∩ ß«ñÑαª¿Γ ¼á߬á, »½εß
- «ñ¿¡ ß¿¼ó«½ (ñ½∩ ß¿¼ó«½á ¬«¡µá ßΓ᫬¿ \0).
-
- Å«½Ñ ñѡѪ¡«⌐ Ññ¿¡¿µδ ¼«ªÑΓ ¿¼ÑΓ∞ »α«¿ºó«½∞¡«Ñ τ¿ß½« µ¿Σα
- ß½Ñóá «Γ ñÑß∩Γ¿τ¡«⌐ Γ«τ¬¿ ¿ ñóÑ µ¿Σαδ ß»αáóá «Γ ¡ÑÑ.
-
- äáΓá ñ«½ª¡á ß««ΓóÑΓßΓó«óáΓ∞ Σ«α¼áΓπ "îîääââ". àß½¿
- »«½∞º«óáΓѽ∞ ¡Ñ»αáó¿½∞¡« óóѽ ñáΓπ, »α«úαá¼¼á óδñáÑΓ ß««íΘÑ¡¿Ñ «í
- «Φ¿í¬Ñ ¿ ΓαÑíπÑΓ «Γ »«½∞º«óáΓѽ∩ »«óΓ«α¡«ú« óó«ñá ñáΓδ.
-
- öπ¡¬µ¿∩ establish_field ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ
- FIELD, «»αÑñѽѡ¡πε ó twindow.h. éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ φΓ«Γ
- π¬áºáΓѽ∞ »α¿ «íαáΘÑ¡¿¿ ¬ field_window, field_help, field_protect
- ¿ field_validate, ¬«Γ«αδÑ «»¿ßá¡δ ¡¿ªÑ.
-
-
- void wprompt(WINDOW *wnd, int x, int y, char *s)
-
- ¥Γá Σπ¡¬µ¿∩ «ßπΘÑßΓó½∩ÑΓ óδñáτπ »α¿ú½áΦÑ¡¿∩ ¡á óó«ñ ñá¡¡δσ ó
- «¬¡«. Åα¿ú½áΦÑ¡¿Ñ ¡á óó«ñ ñá¡¡δσ ∩ó½∩ÑΓß∩ ßΓ᫬«⌐ s, ¬«Γ«αá∩
- óδñáÑΓß∩, ¡áτ¿¡á∩ ß ¬««αñ¿¡áΓ «¬¡á, ºáñáóáѼδσ º¡áτÑ¡¿∩¼¿ σ ¿ π.
-
-
- void field_tally(WINDOW *wnd)
-
- Åα¿ «íαáΘÑ¡¿¿ ¬ φΓ«⌐ Σπ¡¬µ¿¿ ¡á φ¬αá¡ ñ¿ß»½Ñ∩ óδó«ñ∩Γß∩
-
- - 4 -
- º¡áτÑ¡¿∩ óßÑσ ñá¡¡δσ, σαá¡∩Θ¿σß∩ ó íπΣÑαÑ, ñ½∩ óßÑσ »«½Ñ⌐
- Φáí½«¡á. éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ φΓπ Σπ¡¬µ¿ε, ¬«úñá, ¡á»α¿¼Ñα, óδ
- ºá»«½¡¿½¿ íπΣÑα º¡áτÑ¡¿∩¼¿ ¿º ºá»¿ß¿ íáºδ ñá¡¡δσ.
-
- void field_window(FIELD *fld, char *helpname, int x, int y)
-
- ¥Γá Σπ¡¬µ¿∩ «íÑß»Ñτ¿óáÑΓ óδñáτ𠬫¡ΓѬßΓ¡«-ºáó¿ß¿¼«ú«
- help-«¬¡á ñ½∩ ¬áªñ«ú« »«½∩ Φáí½«¡á. Åáαá¼ÑΓα helpname ∩ó½∩ÑΓß∩
- ßΓ᫬«⌐, ß«ñÑαªáΘÑ⌐ ¼¡Ñ¼«¡¿¬π help-«¬¡á ó ΓѬπΘѼ help-Σá⌐½Ñ, ¿
- ߻ѵ¿Σ¿µ¿απÑΓß∩ »αÑñóáα¿Γѽ∞¡« »πΓѼ «íαáΘÑ¡¿∩ ¬ Σπ¡¬µ¿¿
- load_help (ß¼. â½áóπ 7). Æ«τ¡« ΓᬠªÑ, ¬á¬ Σπ¡¬µ¿∩ data_entry
- «ßπΘÑßΓó½∩ÑΓ »ÑαÑσ«ñ «Γ »«½∩ ¬ »«½ε, «íαáΘÑ¡¿Ñ ¬ Σπ¡¬µ¿¿ set_help
- ñ½∩ ¬áªñ«ú« ¿º »«½Ñ⌐ »«ºó«½∩ÑΓ »α¿ó∩ºáΓ∞ ¬«¡¬αÑΓ¡«Ñ help-«¬¡« ñ½∩
- ¬áªñ«ú« ¿º ¡¿σ. Åáαá¼ÑΓαδ σ ¿ π »«ºó«½∩εΓ ß»Ñµ¿Σ¿µ¿α«óáΓ∞ »«º¿µ¿ε
- φ¬αá¡á, ß ¬«Γ«α«⌐ íπñÑΓ «ßπΘÑßΓó½∩Γ∞ß∩ óδñáτá help-«¬¡á.
-
- çá¼ÑΓ∞ΓÑ, τΓ« φΓá Σπ¡¬µ¿∩, á Γá¬ªÑ ÑΘÑ Γα¿, αáßß¼«ΓαÑ¡¡δÑ
- ¡¿ªÑ, ¡Ñ ΓαÑíπεΓ ¡á½¿τ¿∩ ó ß»¿ß¬Ñ »áαá¼ÑΓα«ó π¬áºáΓѽ∩ WINDOW.
- ä½∩ φΓ¿σ Σπ¡¬µ¿⌐ ñ«ßΓáΓ«τ¡« π¬áºáΓѽÑ⌐ FIELD, Γᬠ¬á¬ φΓ¿
- π¬áºáΓѽ¿ »αÑñßΓáó½∩εΓ ß«í«⌐ π¬áºáΓѽ¿ ¡á µÑ»«τ¬π ßó∩º¡«ú«
- ß»¿ß¬á, ¬«Γ«αδ⌐ ¿ «ßπΘÑßΓó½∩ÑΓ »α¿ó∩º¬π Σπ¡¬µ¿¿ ¬ ¬«¡¬αÑΓ¡«¼π
- «¬¡π. ¥Γ¿ Σπ¡¬µ¿¿ ¼«ñ¿Σ¿µ¿απεΓ «»αÑñѽѡ¡δÑ αá¡ÑÑ »«½∩, ¡Ñ
- «íαáΘá∩ 󡿼᡿∩ ¡á Γ«, τΓ« «¡¿ »α¿¡áñ½ÑªáΓ ¬«¡¬αÑΓ¡«¼π Φáí½«¡π
- «¬¡á.
-
- void clear_template(WINDOW *wnd)
-
- ¥Γá Σπ¡¬µ¿∩ «ßó«í«ªñáÑΓ íπΣÑαδ ßí«αá ñá¡¡δσ óßÑσ »«½Ñ⌐
- Φáí½«¡á, «íαáΘá∩ ¿σ ó »πßΓπε ßΓ᫬π, ºá¬á¡τ¿óáεΘπεß∩ ¡π½Ñóδ¼
- ß¿¼ó«½«¼ ¬«¡µá ßΓ᫬¿, á Γá¬ªÑ «Γ«íαáªáÑΓ ¡á φ¬αá¡Ñ óßÑ »«½∩
- Φáí½«¡á.
-
- void field_validate(FIELD *fld, int (*validfn)())
-
- ¥Γá Σπ¡¬µ¿∩ «Γ¡«ß¿Γß∩ ¬ ¼á¬α«ßá¼. Ä¡á ¿ß»«½∞ºπÑΓ áñαÑß
- Σπ¡¬µ¿¿ »α«óÑન ñ«»πßΓ¿¼«ßΓ¿ óó«ñ¿¼δσ º¡áτÑ¡¿⌐ (Ñß½¿ Γᬫóá∩
- íπñÑΓ ¡á»¿ßá¡á »«½∞º«óáΓѽѼ). æΓá¡ñáαΓ¡δÑ Σπ¡¬µ¿¿,
-
- - 5 -
- «ßπΘÑßΓó½∩εΘ¿Ñ »α«óÑα¬π ñ«»πßΓ¿¼«ßΓ¿ óó«ñ¿¼δσ ó »«½∩ ñá¡¡δσ,
- «íδτ¡« ¡Ñ «ßπΘÑßΓó½∩εΓ ΓαÑíπѼ«⌐ »α«óÑન ¡á «Φ¿í«τ¡πε ß¿Γπᵿε.
- Å« φΓ«⌐ »α¿τ¿¡Ñ »«½∞º«óáΓѽ∞ «íδτ¡« ßá¼ »¿ΦÑΓ Σπ¡¬µ¿ε,
- »α«¿ºó«ñ∩Θπε ¬«¡Γα«½∞ ñá¡¡δσ. öπ¡¬µ¿∩ data_entry íπñÑΓ
- «ßπΘÑßΓó½∩Γ∞ «íαáΘÑ¡¿Ñ ¬ «»αÑñѽѡ¡δ¼ óἿ Σπ¡¬µ¿∩¼ ¬«¡Γα«½∩
- ñá¡¡δσ »«ß½Ñ Γ«ú«, ¬á¬ Ñε ßἫ⌐ íπñÑΓ «ßπΘÑßΓó½Ñ¡ ¿σ »Ñαó¿τ¡δ⌐
- ¬«¡Γα«½∞. àß½¿ φΓ« Γá¬, Γ« «¡á íπñÑΓ »ÑαÑñáóáΓ∞ ó φΓ¿ óáΦ¿
- Σπ¡¬µ¿¿ áñαÑß íπΣÑαá ßí«αá ñá¡¡δσ, ¿ αáºαáí«Γá¡¡δÑ óἿ Σπ¡¬µ¿¿
- ¬«¡Γα«½∩ ñá¡¡δσ ß¼«úπΓ «ßπΘÑßΓó¿Γ∞ »α«óÑα¬π óóÑñÑ¡¡δσ
- »«½∞º«óáΓѽѼ º¡áτÑ¡¿⌐, ¡áσ«ñ∩Θ¿σß∩ πªÑ ó íπΣÑαÑ. éáΦá Σπ¡¬µ¿∩
- ¬«¡Γα«½∩ ñ«»πßΓ¿¼«ßΓ¿ ñá¡¡δσ ¼«ªÑΓ ß«ñÑαªáΓ∞ ó맮ó Σπ¡¬µ¿¿
- error_message (ß¼. â½áóπ 6) ñ½∩ «íαáí«Γ¬¿ ß¿Γπᵿ¿, ¬«úñá íπñÑΓ
- «í¡áαπªÑ¡« ¡Ññ«»πßΓ¿¼«Ñ º¡áτÑ¡¿Ñ. Åα¿ φΓ«¼ «»αÑñѽѡ¡á∩ óἿ
- Σπ¡¬µ¿∩ ¬«¡Γα«½∩ ñá¡¡δσ ñ«½ª¡á ó«ºóαáΘáΓ∞ ½¿Φ∞ ñóá º¡áτÑ¡¿∩ Äè
- ¿½¿ ERROR, ¬«Γ«αδÑ, ó ßó«ε «τÑαÑñ∞, «»αÑñѽѡδ ó twindow.h. àß½¿
- Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ Äè, Γ« Σπ¡¬µ¿∩ data_entry íπñÑΓ
- «íαáíáΓδóáΓ∞ ß½ÑñπεΘÑÑ »«½Ñ Φáí½«¡á. àß½¿ ªÑ Σπ¡¬µ¿∩ ¬«¡Γα«½∩
- ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ ERROR, Γ« Σπ¡¬µ¿∩ data_entry "«ßΓá¡«ó¿Γß∩" ¡á
- »«½Ñ, ó ñá¡¡δσ ¬«Γ«α«ú« «í¡áαπªÑ¡á «Φ¿í¬á.
-
- void field_protect(FIELD *fld, int prot)
-
- ¥Γá Σπ¡¬µ¿∩ Γá¬ªÑ «Γ¡«ß¿Γß∩ ¬ ¼á¬α«ßá¼. Ä¡á πßΓá¡áó½¿óáÑΓ
- ¿½¿ «Γ¼Ñ¡∩ÑΓ (ó ºáó¿ß¿¼«ßΓ¿ «Γ º¡áτÑ¡¿∩ »áαá¼ÑΓαá prot) ºáΘ¿Γπ
- σáαá¬ΓÑα¿ßΓ¿¬ »«½∩. çáΘ¿ΘÑ¡¡«Ñ »«½Ñ ¡Ñ «íαáíáΓδóáÑΓß∩
- (¿ú¡«α¿απÑΓß∩) Σπ¡¬µ¿Ñ⌐ data_entry. êß»«½∞ºπ∩ Σπ¡¬µ¿ε
- field_protect, óδ ¼«ªÑΓÑ π»αáó½∩Γ∞ ñ«ßΓπ»«¼ »«½∞º«óáΓѽÑ⌐ ¬ »«½∩¼
- Φáí½«¡á, αáºαÑΦá∩ ¿½¿ ºá»αÑΘá∩ ºá»¿ß∞ ó ¡¿σ ñá¡¡δσ.
-
- ¥Γá Σπ¡¬µ¿∩ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ß«ó¼ÑßΓ¡« ß Σπ¡¬µ¿∩¼¿ field
- _validate, clear_template ¿ field_fally ñ½∩ ¬«¡Γα«½∩ ¡áñ
- ¿º¼Ñ¡Ñ¡¿∩¼¿, »α«¿ºó«ñ¿¼δ¼¿ ó ºá»¿ß∩σ íáºδ ñá¡¡δσ, ó ß½πτáÑ, Ñß½¿
- φ½Ñ¼Ñ¡Γδ ºá»¿ß¿ íáºδ ñá¡¡δσ «Γ«íαáªáεΓß∩ ó Φáí½«¡Ñ.
-
- ä½∩ »«¡¿¼á¡¿∩ Γ«ú«, ¬á¬ º¡áτ¿Γѽ∞¡« αáßΦ¿α∩ÑΓ ó«º¼«ª¡«ßΓ¿
- »α«úαá¼¼δ ¿ß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿¿ field_protect, αáßß¼«Γα¿¼ Φáí½«¡,
- ¿º«íαáªÑ¡¡δ⌐ ¡á α¿ßπ¡¬Ñ 8.1. Åα¿¼¿ΓÑ ó« 󡿼᡿Ñ, τΓ« φëà Φáí½«¡
-
- - 6 -
- ß«ñÑαª¿Γ »«½∩, «íαáºπεΘ¿Ñ ºá»¿ß∞ »« «ñ¡«¼π ß½πªáΘѼπ ó Σá⌐½Ñ íáºδ
- ñá¡¡δσ. ÿáí½«¡ óó«ñá ñá¡¡δσ ¿ß»«½∞ºπÑΓß∩ ñ½∩ óó«ñá, «Γ«íαáªÑ¡¿∩,
- »«¿ß¬á ¿ ¿º¼Ñ¡Ñ¡¿∩ ºá»¿ßÑ⌐ ó Σá⌐½Ñ. ÅÑαÑñ ¡áτὫ¼ óó«ñá ñá¡¡δσ
- óáΦá »α«úαá¼¼á ¼«ªÑΓ «íαáΓ¿Γ∞ß∩ ¬ Σπ¡¬µ¿¿ field_protect ñ½∩
- ºáΘ¿Γδ óßÑσ »«½Ñ⌐, ¬α«¼Ñ »«½∩ "¡«¼Ñα ß½πªáΘÑú«". çáΓѼ óδ ¼«ªÑΓÑ
- «íαáΓ¿Γ∞ß∩ ¬ Σπ¡¬µ¿¿ field_validate, »ÑαÑñáó Ñ⌐ π¬áºáΓѽ∞ ¡á
- «íδτ¡δÑ, αáºαáí«Γá¡¡δÑ óἿ Σπ¡¬µ¿¿ ¬«¡Γα«½∩ ñá¡¡δσ ¡á
- ñ«»πßΓ¿¼«ßΓ∞. Å«ß½Ñ Γ«ú«, ¬á¬ »«½∞º«óáΓѽ∞ óóÑñÑΓ ñá¡¡δÑ ó »«½Ñ
- "¡«¼Ñα ß½πªáΘÑú«", Σπ¡¬µ¿∩ data_entry (íπñÑΓ «»¿ßá¡á »«ºªÑ)
- «ßπΘÑßΓó¿Γ «íαáΘÑ¡¿Ñ ¬ αáºαáí«Γá¡¡«⌐ óἿ Σπ¡¬µ¿¿ ¬«¡Γα«½∩
- ñá¡¡δσ, ¬«Γ«αá∩ «ßπΘÑßΓó¿Γ »«¿ß¬ ¿ ßαáó¡Ñ¡¿Ñ »« ¬½ετπ (¡«¼Ñα
- ß½πªáΘÑú«) ¡πª¡«⌐ ºá»¿ß¿ ó íáºÑ ñá¡¡δσ. öπ¡¬µ¿∩ ¬«¡Γα«½∩ ñá¡¡δσ
- »α«¿ºóÑñÑΓ ºáúαπº¬π ß««ΓóÑΓßΓóπεΘ¿σ íπΣÑα«ó ¡á¬«»½Ñ¡¿∩ ñá¡¡δσ
- φ½Ñ¼Ñ¡ΓἿ ñá¡¡δσ ¿º ¡á⌐ñÑ¡¡«⌐ ºá»¿ß¿ íáºδ ñá¡¡δσ, á ºáΓѼ
- «íαáΓ¿Γß∩ ¬ Σπ¡¬µ¿¿ field_fally ñ½∩ óδó«ñá º¡áτÑ¡¿⌐ φ½Ñ¼Ñ¡Γ«ó
- ñá¡¡δσ ¡á φ¬αá¡. Å«ß½Ñ φΓ«ú« íπñÑΓ óδºóá¡á Σπ¡¬µ¿∩ field_protect
- ñ½∩ πßΓá¡«ó¬¿ ºáΘ¿Γδ ñ½∩ »«½∩ "¡«¼Ñα ß½πªáΘÑú«" ¿ ß¡∩Γ¿∩ ºáΘ¿Γδ ß
- «ßΓá½∞¡δσ »«½Ñ⌐. é ¿Γ«úÑ Σπ¡¬µ¿∩ ¬«¡Γα«½∩ ñá¡¡δσ »ÑαÑñáßΓ
- π»αáó½Ñ¡¿Ñ Σπ¡¬µ¿¿ data_entry, ¿ »«½∞º«óáΓѽ∞ »«½πτ¿Γ 󫺼«ª¡«ßΓ∞
- »α«¿ºóÑßΓ¿ ¬«ααѬµ¿ε º¡áτÑ¡¿⌐ φ½Ñ¼Ñ¡Γ«ó ñá¡¡δσ. Å« ºáóÑαΦÑ¡¿¿
- »«½∞º«óáΓѽѼ »α«µÑßßá «íαáí«Γ¬¿ ºá»¿ß¿ ß¿ßΓÑ¼á »ÑαÑñáßΓ
- π»αáó½Ñ¡¿Ñ »α¿¬½áñ¡δ¼ Σπ¡¬µ¿∩¼, ¬«Γ«αδÑ ¡Ñ»«ßαÑñßΓóÑ¡¡« íπñπΓ
- «íαáΘáΓ∞ß∩ ó data_entry. ¥Γ¿ Σπ¡¬µ¿¿ ¼«úπΓ »ÑαѺỿßáΓ∞
- «Γ¬«ααÑ¬Γ¿α«óá¡¡πε ºá»¿ß∞ ó Σá⌐½, «τ¿ßΓ¿Γ∞ íπΣÑαá ñá¡¡δσ ¿
- Φáí½«¡δ »πΓѼ «íαáΘÑ¡¿∩ ¬ Σπ¡¬µ¿¿ clear_template, »ÑαÑ«»αÑñѽ¿Γ∞
- ºáΘ¿Γπ »«½Ñ⌐ Φáí½«¡á (á º¡áτ¿Γ, ¿ ºá»¿ß¿), ß¡∩ó ºáΘ¿Γπ ß »«½∩
- "¡«¼Ñα ß½πªáΘÑú«" ¿ πßΓá¡«ó¿ó ºáΘ¿Γπ ñ½∩ ñαπú¿σ »«½Ñ⌐, ¿
- »«óΓ«α¿Γ∞ óÑß∞ »α«µÑßß «íαáí«Γ¬¿ ºá»¿ß¿ ºá¡«ó«.
-
- ┌───────────────────────────────────────────────────────────────┐
- │ │
- │ │
- │ │
- │ ┌────────────Employee Record───────────┐ │
- │ │ │ │
- │ │ Employee #: 377 │ │
- │ │ Name: Otis Cribblecoblis │ │
-
- - 7 -
- │ │ Department: 2001 │ │
- │ │ Salary: 15450.00 │ │
- │ │ Date Hired: 01/02/55 │ │
- │ │ SSN: 221-52-1234 │ │
- │ │ │ │
- │ │ │ │
- │ └──────────────────────────────────────┘ │
- │ │
- │ │
- │ │
- └───────────────────────────────────────────────────────────────┘
-
- É¿ß. 8.1. Åα¿¼Ñα Φáí½«¡á óó«ñá ñá¡¡δσ
-
-
- void field_help(FIELD *fld, int (*helpfn)())
-
- ¥Γá Σπ¡¬µ¿∩ «Γ¡«ß¿Γß∩ ¬ ¼á¬α«ßá¼. Ä¡á »«ºó«½∩ÑΓ óá¼
- πßΓá¡«ó¿Γ∞ ߻ѵ¿á½∞¡πε help-Σπ¡¬µ¿ε, ¬«Γ«αá∩ íπñÑΓ óδºδóáΓ∞ß∩
- ó¼ÑßΓ« ßΓá¡ñáαΓ¡«⌐ help-Σπ¡¬µ¿¿. ¥Γá Σπ¡¬µ¿∩ ¿ß»«½∞ºπÑΓß∩ ñ½∩
- «Γñѽ∞¡δσ »«½Ñ⌐ Φáí½«¡á, ¬«úñá »«½∞º«óáΓѽε ΓαÑíπÑΓß∩ »«½πτ¿Γ∞ »«
- ¡¿¼ í«½ÑÑ »«½¡πε help-¿¡Σ«α¼áµ¿ε, τѼ Ѽπ »αÑñ«ßΓáó½Ñ¡« ΓѬßΓ«¼,
- «Γ«íαáªáÑ¼δ¼ ó «¬¡Ñ.
-
- é »α«µÑßßÑ óó«ñá ñá¡¡δσ ó «¬¡« π »«½∞º«óáΓѽ∩ ¼«úπΓ
- 󫺡¿¬¡πΓ∞ αẽ¿τ¡δÑ ó«»α«ßδ «Γ¡«ß¿Γѽ∞¡« ¬á¬ »αÑñ¡áº¡áτÑ¡¿∩
- «¬¡á, Γᬠ¿ ó¿ñá óσ«ñ¡δσ ñá¡¡δσ. ä½∩ »«½πτÑ¡¿∩ «ΓóÑΓ«ó ¡á ßó«¿
- ó«»α«ßδ »«½∞º«óáΓѽε ñ«ßΓáΓ«τ¡« ¡áªáΓ∞ ¡á ߻ѵ¿á½∞¡« óδñѽѡ¡πε
- help-¬½áó¿Φπ, ¬«Γ«αá∩ ¿¡¿µ¿¿απÑΓ «íαáΘÑ¡¿Ñ ¬ ߻ѵ¿á½∞¡«⌐
- help-Σπ¡¬µ¿¿. öπ¡¬µ¿∩ data_entry »ÑαÑñáßΓ áñαÑß íπΣÑαá ¡á¬«»½Ñ¡¿∩
- ñá¡¡δσ »«½∩, τΓ« ó»«ß½ÑñßΓó¿¿ ñáßΓ ó«º¼«ª¡«ßΓ∞ ߻ѵ¿á½∞¡«⌐
- help-Σπ¡¬µ¿¿ óÑα¡πΓ∞ ΓѬπΘÑÑ º¡áτÑ¡¿Ñ ó »«½Ñ.
-
- ¥Γá «Γ½¿τ¿Γѽ∞¡á∩ τÑαΓá Σπ¡¬µ¿¿ field_help ¿ß»«½∞ºπÑΓß∩,
- ¬«úñá ¿¼ÑÑΓß∩ ß»¿ß«¬ 󫺼«ª¡δσ º¡áτÑ¡¿⌐, ¿º ¬«Γ«αδσ »«½∞º«óáΓѽ∞
- ñ«½ªÑ¡ «ßπΘÑßΓó½∩Γ∞ óδí«α, ¡« «Γ«íαáªÑ¡¿Ñ óßÑú« ß»¿ß¬á ó «¬¡Ñ
- »«ßΓ«∩¡¡« ¡ÑµÑ½Ñß««íαạ«. éδ ¼«ªÑΓÑ «Γ¬αδΓ∞ ÑΘÑ «ñ¡« «¬¡« ñ½∩
-
- - 8 -
- óδñáτ¿ help-¿¡Σ«α¼áµ¿¿ ß »«¼«Θ∞ε óáΦÑ⌐ ߻ѵ¿á½∞¡«⌐ help-Σπ¡¬µ¿¿,
- «Γ«íαếΓ∞ ó ¡Ñ¼ óÑß∞ ß»¿ß«¬ 󫺼«ª¡δσ º¡áτÑ¡¿⌐ ¿ ºáΓѼ
- ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε get_selection (ß¼. â½áóπ 6) ñ½∩ «íÑß»ÑτÑ¡¿∩
- óδí«αá »«½∞º«óáΓѽѼ ¡πª¡«ú« Ñ¼π º¡áτÑ¡¿∩. éδ Γá¬ªÑ ¼«ªÑΓÑ, ¬á¬
- φΓ« ñѽáÑΓß∩ ó »α¿¼ÑαÑ, ¬«Γ«αδ⌐ »αÑñßΓáó½Ñ¡ ó φΓ«⌐ ú½áóÑ ¡¿ªÑ,
- ºá»¿ßδóáΓ∞ ΓѬπΘπε ñáΓπ ó íπΣÑαδ ¡á¬«»½Ñ¡¿∩ ñá¡¡δσ »«½Ñ⌐. éá¼
- »αÑñ«ßΓáó½Ñ¡á 󫺼«ª¡«ßΓ∞ «ßπΘÑßΓó½∩Γ∞ ºá»α«ßδ ¬ íáºÑ ñá¡¡δσ.
- ÄτÑó¿ñ¡«, τΓ« »α¿ αáí«ΓÑ ß ºá»¿ß∩¼¿ Σá⌐½á "æ½πªáΘ¿⌐" íáºδ ñá¡¡δσ
- óáΦá help-Σπ¡¬µ¿∩ ¼«ªÑΓ óδñáóáΓ∞ ß»¿ß«¬ ¡«¼Ñα«ó ß½πªáΘ¿σ ¿ ¿σ
- ΣἿ½¿¿, óδí¿αá∩ φΓπ ¿¡Σ«α¼áµ¿ε ¡Ñ»«ßαÑñßΓóÑ¡¡« ¿º ßἫú« Σá⌐½á
- "æ½πªáΘ¿⌐".
-
- int data_entry(WINDOW *wnd)
-
- ¥Γá Σπ¡¬µ¿∩ «íαáíáΓδóáÑΓ óó«ñ¿¼δÑ ó Φáí½«¡ ñá¡¡δÑ.
- Å«½∞º«óáΓѽ∞ ¼«ªÑΓ »α«ß¼«ΓαÑΓ∞ óÑß∞ Φáí½«¡ ß« º¡áτÑ¡¿∩¼¿ óßÑσ
- »«½Ñ⌐, óδñáóá∩ ¡á ñ¿ß»½Ñ⌐ ΓѬπΘ¿Ñ º¡áτÑ¡¿∩ ñá¡¡δσ ¿º
- ß««ΓóÑΓßΓóπεΘ¿σ íπΣÑα«ó ¡á¬«»½Ñ¡¿∩ ñá¡¡δσ. Å«½∞º«óáΓѽ∞
- «ßπΘÑßΓó½∩ÑΓ óó«ñ ñá¡¡δσ ó »«½∩ ó Γ«⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿, ó
- ¬«Γ«α«⌐ »«½∩ í뫨 πßΓá¡«ó½Ñ¡δ ó Φáí½«¡Ñ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- establish_field, »α¿ φΓ«¼ »«º¿µ¿∩ αẼÑΘÑ¡¿∩ »«½∩ ó Φáí½«¡Ñ ó«
- ó¡¿¼á¡¿Ñ ¡Ñ »α¿¡¿¼áÑΓß∩.
-
- Å«½Ñ, ¬«Γ«α«Ñ »αÑñ¡áº¡áτÑ¡« ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ ñ½∩ óó«ñá ó ¡Ñú«
- ñá¡¡δσ, «Γ«íαáªáÑΓß∩ »«½∞º«óáΓѽε ß πτÑΓ«¼ ßπ¼¼áα¡«ú«
- »α«ßΓαá¡ßΓóá »«ñ óó«ñ¿¼δÑ ñá¡¡δÑ, ó¬½ετá∩ »π¡¬Γπᵿε, ¿
- óδñѽ∩ÑΓß∩ »«óδΦÑ¡¡«⌐ ∩ᬫßΓ∞ε ó ß««ΓóÑΓßΓó¿¿ ß« º¡áτÑ¡¿Ñ¼
- »áαá¼ÑΓαá ACCENT, «»αÑñѽ∩εΘ¿¼ µóÑΓ «¬¡á. èπαß«α πßΓá¡áó½¿óáÑΓß∩
- ó »Ñαó«⌐ »«º¿µ¿¿ »«½∩, ¿ Σπ¡¬µ¿∩ »ÑαÑσ«ñ¿Γ ó αѪ¿¼ «ª¿ñá¡¿∩ óó«ñá
- ñá¡¡δσ. Å«½∞º«óáΓѽ∞ ¼«ªÑΓ ¡áτáΓ∞ óó«ñ ñá¡¡δσ ¿½¿ ó ΓѬπΘÑÑ »«½Ñ,
- ¿½¿ πßΓá¡«ó¿Γ∞ ΓѬπΘ¿¼ ñαπú«Ñ »«½Ñ, ¿ß»«½∞ºπ∩ ¬½áó¿Φπ <ééÄä>,
- ¬½áó¿Φπ Γáíπ½∩µ¿¿ <Æáí> ¿½¿ ¬½áó¿Φ¿ π»αáó½Ñ¡¿∩ ¬παß«α«¼. è½áó¿Φ¿
- <èï₧ù>, <æΓαá¡¿µá óóÑασ> (<PgUp>), <CΓαá¡¿µá 󡿺> (<PgDn>),
- <èÄì> (<End>), »ÑαѼÑΘÑ¡¿∩ ¬παß«αá ó »Ñαóπε »«º¿µ¿ε »Ñαó«⌐ ßΓ᫬¿
- (<Home>) ¿ Σπ¡¬µ¿«¡á½∞¡δÑ ¬½áó¿Φ¿ (ß <Åö1> ñ« <Åö10>, ¿ß¬½ετá∩
- ¬½áó¿Φπ, ºá ¬«Γ«α«⌐ ºá¬αÑ»½Ñ¡ ó맮ó help-Σπ¡¬µ¿¿) »αÑñ¡áº¡áτÑ¡δ
- ñ½∩ ºáóÑαΦÑ¡¿∩ »α«µÑßßá óó«ñá ñá¡¡δσ ¿ ó«ºóαáΓá ¿º Σπ¡¬µ¿¿
-
- - 9 -
- data_entry, ¬ ¬«Γ«α«⌐ »ÑαÑñ φΓ¿¼ í佫 «ßπΘÑßΓó½Ñ¡« «íαáΘÑ¡¿Ñ, ó
- Γ«τ¬π ó맮óá.
-
- Å«ß½Ñ óó«ñá »«½∞º«óáΓѽѼ »«ß½Ññ¡Ñú« ß¿¼ó«½á »«½∩ »α«¿ßσ«ñ¿Γ
- óδñѽѡ¿Ñ »«óδΦÑ¡¡«⌐ ∩ᬫßΓ∞ε ß½ÑñπεΘÑú« »«½∩ ¿ »ÑαѼÑΘÑ¡¿Ñ ¬
- ¡Ñ¼π ¬παß«αá. ÅÑαÑñ φΓ¿¼ Σπ¡¬µ¿∩ data_entry «íαáΘáÑΓß∩ ¬ ßó«¿¼
- ß«íßΓóÑ¡¡δ¼ Σπ¡¬µ¿∩¼ ¬«¡Γα«½∩ ñá¡¡δσ ¿ (Ñß½¿ óδ πßΓᡫ󿽿 ÑΘÑ ¿
- ßó«¿ ß»Ñµ¿á½∞¡δÑ Σπ¡¬µ¿¿ ¬«¡Γα«½∩ ñá¡¡δσ) ¬ ߻ѵ¿á½∞¡δ¼ Σπ¡¬µ¿∩¼
- ¬«¡Γα«½∩. éßÑ φΓ¿ Σπ¡¬µ¿¿ ñ«½ª¡δ ó αѺπ½∞ΓáΓÑ αáí«Γδ óδñáΓ∞
- º¡áτÑ¡¿Ñ Äè, ó »α«Γ¿ó¡«¼ ß½πτáÑ Σπ¡¬µ¿∩ data_entry ¡Ñ »ÑαѼÑßΓ¿Γ
- ¬παß«α ¬ ß½ÑñπεΘÑ¼π »«½ε.
-
- àß½¿ »«½∞º«óáΓѽ∞ ¡áªá½ ¬½áó¿Φπ, ºá ¬«Γ«α«⌐ ºá¬αÑ»½Ñ¡ ó맮ó
- help-Σπ¡¬µ¿¿, Γ« íπñÑΓ «ßπΘÑßΓó½Ñ¡ ó맮ó ߻ѵ¿á½∞¡«⌐ help-Σπ¡¬µ¿¿
- (Ñß½¿ «¡á óἿ «»αÑñѽѡá), »αÑñ¡áº¡áτÑ¡¡«⌐ ñ½∩ ΓѬπΘÑú« »«½∩,
- »πΓѼ »ÑαÑñáτ¿ Ñ⌐ áñαÑßá íπΣÑαá ¡á¬«»½Ñ¡¿∩ ñá¡¡δσ »«½∩. àß½¿
- help-Σπ¡¬µ¿∩ óἿ ¡Ñ ß«ºñá¡á ¿ help-«¬¡« "»α¿ó∩ºá¡«" ¬ »«½ε, Γ«
- help-Σπ¡¬µ¿¿, «»¿ßá¡¡δÑ ó â½áóÑ 7, «íÑß»ÑτáΓ óδñáτπ ¡á φ¬αá¡
- ñ¿ß»½Ñ∩ help-«¬¡á. àß½¿ ¡¿ help-«¬¡«, ¡¿ help-Σπ¡¬µ¿∩ ¡Ñ
- «»αÑñѽѡδ, Γ« ¡áªáΓ¿Ñ »«½∞º«óáΓѽѼ help-¬½áó¿Φ¿ ¡Ñ »α¿óÑñÑΓ ¡¿
- ¬ ¬á¬«¼π αѺπ½∞ΓáΓπ, Ñß½¿, ¬«¡Ñτ¡«, »α«úαá¼¼á ¿ß»«½∞ºπÑΓ
- help-Σπ¡¬µ¿¿ ¡Ñºáó¿ß¿¼« «Γ ¬«¡ΓѬßΓá óó«ñ¿¼δσ ó «¬¡« ñá¡¡δσ.
- Å«ß½Ñ Γ«ú«, ¬á¬ »α«¿ßσ«ñ¿Γ ó«ºóαáΓ ¿º Σπ¡¬µ¿¿ data_entry ó Γ«τ¬π
- ÑÑ ó맮óá, óßÑ íπΣÑαδ »«½Ñ⌐ ß«ñÑαªáΓ º¡áτÑ¡¿∩ ñá¡¡δσ, ¬«Γ«αδÑ
- óóѽ »«½∞º«óáΓѽ∞. ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ π»αáó½Ñ¡¿Ñ ó Γ«τ¬π
- ó맮óá »α¿ ¡áªáΓ¿¿ ¬½áó¿Φ, «º¡áτáεΘ¿σ ¬«¡Ñµ óó«ñá ñá¡¡δσ ó
- Φáí½«¡. Æá¬«ó묨 ∩ó½∩εΓß∩ ¬½áó¿Φá <èï₧ù>, ¬½áó¿Φ¿ ½¿ßΓá¡¿∩
- ßΓαá¡¿µ (<PgUp>, <PgDn>) ¿½¿ Σπ¡¬µ¿«¡á½∞¡δÑ ¬½áó¿Φ¿, »α¿ó«ñ∩Θ¿Ñ ¬
- ºáóÑαΦÑ¡¿ε »α«µÑßßá óó«ñá ñá¡¡δσ. Åਪ½áñ¡«Ñ »α«úαá¼¼¡«Ñ
- «íÑß»ÑτÑ¡¿Ñ á¡á½¿º¿απÑΓ º¡áτÑ¡¿Ñ »«ß½Ññ¡Ñ⌐ ¡áªáΓ«⌐ »«½∞º«óáΓѽѼ
- ¬½áó¿Φ¿ ñ½∩ «»αÑñѽѡ¿∩ Ñú« ¡á¼ÑαÑ¡¿⌐. ìáªáΓ¿Ñ ¬½áó¿Φ¿ <èï₧ù>,
- ¡á»α¿¼Ñα, ¼«ªÑΓ «º¡áτáΓ∞ "êú¡«α¿απ⌐ óßÑ ó¡ÑßÑ¡¡δÑ ¼¡«⌐ ¿º¼Ñ¡Ñ¡¿∩
- ¿ óÑα¡¿ ¼Ñ¡∩ ¬ »αÑñδñπΘѼπ ß«ñÑαªá¡¿ε Φáí½«¡á". è½áó¿Φ¿ <æΓαá¡¿µá
- óóÑασ> (<PgUp>) ¿ <æΓαá¡¿µá 󡿺> (<PgDn>) «º¡áτáεΓ (¬á¬
- «»αÑñѽѡ« ó keys.h), τΓ« »«½∞º«óáΓѽ∞ σ«τÑΓ »ÑαÑ⌐Γ¿ ¬ ß½ÑñπεΘÑ⌐
- ¿½¿ »αÑñδñπΘÑ⌐ ºá»¿ß¿ íáºδ ñá¡¡δσ. è«úñá »«½∞º«óáΓѽ∞ ºáóÑαΦáÑΓ
- óó«ñ ñá¡¡δσ, Γ« ¬«ñ ºáóÑαΦÑ¡¿∩ »α«µÑßßá óó«ñá »ÑαÑñáÑΓß∩ ó
-
- - 10 -
- »α«úαá¼¼π, óδºóáóΦπε Σπ¡¬µ¿ε data_entry, ñ½∩ ñá½∞¡Ñ⌐ΦÑú«
- ¿ß»«½∞º«óá¡¿∩.
-
-
- êßσ«ñ¡δ⌐ ΓѬßΓ: entry.c
- -----------------------------------------------------------------
-
- ï¿ßΓ¿¡ú 8.1 »αÑñßΓáó½∩ÑΓ ß«í«⌐ ¿ßσ«ñ¡δ⌐ ΓѬßΓ Σá⌐½á entry.c,
- ¬«Γ«αδ⌐ ß«ñÑαª¿Γ í¿í½¿«ΓÑτ¡δÑ Σπ¡¬µ¿¿ »«ññÑ᪬¿ «¬«¡¡«ú« Φáí½«¡á
- óó«ñá ñá¡¡δσ.
-
-
- ï¿ßΓ¿¡ú 8.1: entry.c
-
-
- /*----------------entry.c----------------*/
-
- #include <stdio.h>
- #include <ctype.h>
- #include <stdlib.h>
- #include <alloc.h>
- #include <mem.h>
- #include <string.h>
- #include "twindow.h"
- #include "keys.h"
-
- #define FIELDCHAR '_'
- int insert_mode = FALSE; /* αѪ¿¼ óßΓáó¬¿, éèï/é¢èï */
- extern int helpkey;
-
-
- /*----------------½«¬á½∞¡δÑ »α«Γ«Γ¿»δ----------------*/
- void addfield(WINDOW *wnd, FIELD *fld);
- void disp_field(WINDOW *wnd, char *bf, char *msk);
- void data_value(WINDOW *wnd, FIELD *fld);
- void insert_status(void);
- int read_field(WINDOW *wnd, FIELD *fld);
-
- - 11 -
- void right_justify(char *s);
- void right_justify_zero_fill(char *s);
- int validate_date(char *s);
- int endstroke(int c);
- int spaces(char *c);
-
- /*----------------¿¡¿µ¿á½¿ºáµ¿∩ Φáí½«¡á---------------*/
- void init_template(WINDOW *wnd)
- {
- FIELD *fld, *fl;
-
- fld = FHEAD;
- while (fld) {
- fl = fld->fnxt;
- free(fld);
- fld = fl;
- }
- FHEAD = NULL;
- }
- /*---------------πßΓá¡«ó¬á »«½Ñ⌐ Φáí½«¡á--------------*/
- FIELD *establish_field(wnd, cl, rw, msk, bf, ty)
- WINDOW *wnd;
- int rw;
- int cl;
- char *msk;
- char *bf;
- int ty;
- {
- FIELD *fld;
-
- if ( (fld = malloc(sizeof(FIELD))) == NULL)
- return NULL;
- fld->fmask = msk;
- fld->frow = rw;
- fld->fcol = cl;
- fld->fbuff = bf;
- fld->ftype = ty;
-
- - 12 -
- fld->fprot = 0;
- fld->fnxt = fld->fprv = NULL;
- fld->fvalid =NULL;
- fld->fhelp = NULL;
- fld->fhwin = NULL;
- fld->flx = fld->fly = 0;
- addfield(wnd, fld);
- return fld;
- }
-
- /*--------ñ«íáó½Ñ¡¿Ñ »«½∩ ó ¬«¡Ñµ ß»¿ß¬á-----------*/
- static void addfield(WINDOW *wnd, FIELD *fld)
- {
- if (FTAIL) {
- fld->fprv = FTAIL;
- FTAIL->fnxt = fld;
- }
- FTAIL = fld;
- if (!FHEAD)
- FHEAD = fld;
- }
-
- /*---------«Γ«íαáªÑ¡¿Ñ ñá¡¡δσ ó »«½∩σ----------*/
- static void disp_field(WINDOW *wnd, char *bf, char *msk)
- {
- while (*msk) {
- wputchar(wnd, *msk != FIELDCHAR ? *msk : *bf++);
- msk++;
- }
- }
-
- /*--------«Γ«íαáªÑ¡¿Ñ º¡áτÑ¡¿⌐ ñá¡¡δσ ó »«½∩σ-----------*/
- static void data_value(WINDOW *wnd, FIELD *fld)
- {
- wcursor(wnd, fld->fcol, fld->frow);
- disp_field(wnd, fld->fbuff, fld->fmask);
- }
-
- - 13 -
-
- /*----------«Γ«íαáªÑ¡¿Ñ óßÑσ »«½Ñ⌐ ó «¬¡Ñ---------------*/
- void field_tally(WINDOW *wnd)
- {
- FIELD *fld;
-
- fld = FHEAD;
- while (fld != NULL) {
- data_value(wnd, fld);
- fld = fld->fnxt;
- }
- }
-
- /*-----------πßΓá¡«ó¬á help-«¬«¡ ñ½∩ »«½Ñ⌐--------------*/
- void field_window(FIELD *fld, char *hwin, int x, int y)
- {
- fld->fhwin=hwin;
- fld->flx = x;
- fld->fly = y;
- }
-
- /*-----------«τ¿ßΓ¬á óßÑσ »«½Ñ⌐ Φáí½«¡á--------------*/
- void clear_template(WINDOW *wnd)
- {
- FIELD *fld;
- char *bf, *msk;
-
- fld = FHEAD;
- while (fld != NULL) {
- bf = fld->fbuff;
- msk = fld->fmask;
- while (*msk) {
- if (*msk == FIELDCHAR)
- *bf++ = ' ';
- msk++;
- }
- fld = fld->fnxt;
-
- - 14 -
- }
- field_tally(wnd);
- }
-
- /*---------πßΓá¡«ó¬á αѪ¿¼á óßΓáó¬¿/ºá¼Ñ¡δ ¬παß«αá------------*/
- static void insert_status()
- {
- set_cursor_type(insert_mode ? 0x0106 : 0x0607);
- }
-
- /*------------τΓÑ¡¿Ñ »«½∩ ß ¬½áó¿áΓπαδ--------------*/
- static int read_field(WINDOW *wnd, FIELD *fld)
- {
- char *mask = fld->fmask, *buff = fld->fbuff;
- int done = FALSE, c, column;
-
- column = fld->fcol;
- while (*mask != FIELDCHAR) {
- column++;
- mask++;
- }
- while (TRUE) {
- wcursor(wnd, column, fld->frow);
- c = get_char();
- if (fld->ftype == 'A')
- c = toupper(c);
- clear_message();
- switch (c) {
- case '\b':
- case BS:
- if (buff == fld->fbuff) {
- done = c == BS;
- break;
- }
- --buff;
- do {
- --mask;
-
- - 15 -
- --column;
- } while (*mask != FIELDCHAR);
- if (c == BS)
- break;
- case DEL:
- movmem(buff+1, buff, strlen(buff));
- *(buff+strlen(buff)) = ' ';
- wcursor(wnd, column, fld->frow);
- disp_field(wnd, buff, mask);
- break;
- case FWD:
- do {
- column++;
- mask++;
- } while (*mask && *mask != FIELDCHAR);
- buff++;
- break;
- case INS:
- insert_mode ^= TRUE;
- insert_status();
- break;
- case '.':
- if (fld->ftype == 'C') {
- if (*mask++ && *buff == ' ') {
- *buff++ = '0';
- if (*mask++ && *buff == ' ')
- *buff++ = '0';
- }
- right_justify(fld->fbuff);
- wcursor(wnd, fld->fcol, fld->frow);
- disp_field(wnd, fld->fbuff, fld->fmask);
- column = fld->fcol+strlen(fld->fmask)-2;
- mask = fld->fmask+strlen(fld->fmask)-2;
- buff = fld->fbuff+strlen(fld->fbuff)-2;
- break;
- }
- default:
-
- - 16 -
- if (endstroke(c)) {
- done = TRUE;
- break;
- }
- if (toupper(fld->ftype)!='A'&&!isdigit(c)) {
- error_message("Numbers only");
- break;
- }
- if (insert_mode) {
- movmem(buff, buff+1, strlen(buff)-1);
- disp_field(wnd, buff, mask);
- wcursor(wnd, column, fld->frow);
- }
- *buff++ = c;
- wputchar(wnd, c);
- do {
- column++;
- mask++;
- } while (*mask && *mask != FIELDCHAR);
- if (! *mask)
- c = FWD;
- break;
- }
- if (!*mask)
- done = TRUE;
- if (done) {
- if (fld->ftype == 'D' &&
- c != ESC &&
- validate_date(fld->fbuff) !=OK)
- return ERROR;
- break;
- }
- }
- if (c != ESC && toupper(fld->ftype) != 'A') {
- if (fld->ftype == 'C') {
- if (*mask++ && *buff == ' ') {
- *buff++ = '0';
-
- - 17 -
- if (*mask++ && *buff == ' ')
- *buff++ = '0';
- }
- }
- if (fld->ftype == 'Z' || fld->ftype == 'D')
- right_justify_zero_fill(fld->fbuff);
- else
- right_justify(fld->fbuff);
- wcursor(wnd, fld->fcol, fld->frow);
- disp_field(wnd, fld->fbuff, fld->fmask);
- }
- return c;
- }
-
- /*-------»α«óÑα¬á º¡áτÑ¡¿∩ ß ¡á ¬«ñ ¬½áó¿Φ¿ ºáóÑαΦÑ¡¿∩------*/
- static int endstroke(int c)
- {
- switch (c) {
- case '\r':
- case '\n':
- case '\t':
- case ESC:
- case F1:
- case F2:
- case F3:
- case F4:
- case F5:
- case F6:
- case F7:
- case F8:
- case F9:
- case F10:
- case PGUP:
- case PGDN:
- case HOME:
- case END:
- case UP:
-
- - 18 -
- case DN:
- return TRUE;
- default:
- return FALSE;
- }
- }
-
- /*------------óδαáó¡¿óá¡¿Ñ ó»αáó«, ºá»«½¡Ñ¡¿Ñ »α«íѽἿ------*/
- static void right_justify(char *s)
- {
- int len;
-
- len = strlen(s);
- while (*s == ' ' || *s == '0' && len) {
- len--;
- *s++ = ' ';
- }
- if (len)
- while (*(s+(len-1)) == ' ') {
- movmem (s, s+1, len-1);
- *s = ' ';
- }
- }
-
- /*-----------óδαáó¡¿óá¡¿Ñ ó»αáó«, ºá»«½¡Ñ¡¿Ñ ¡π½∩¼¿----------*/
- static void right_justify_zero_fill(char *s)
- {
- int len;
-
- if (spaces(s))
- return;
- len = strlen(s);
- while (*(s + len - 1) == ' ') {
- movmem(s, s + 1, len-1);
- *s = '0';
- }
- }
-
- - 19 -
-
- /*---------------¬«¡Γα«½∞ »α«íѽ«ó-------------*/
- int spaces(char *c)
- {
- while (*c == ' ')
- c++;
- return !*c;
- }
-
- /*----------------»α«óÑα¬á ñáΓδ---------------------*/
- static int validate_date(char *s)
- {
- static int days [] =
- { 31,28,31,30,31,30,31,31,30,31,30,31 };
- char date [7];
- int mo;
-
- strcpy(date, s);
- if (spaces(date))
- return OK;
- days[1] = (atoi(date+4)%4) ? 28 : 29;
- *(date + 4) = '\0';
- mo = atoi(date+2);
- *(date+2) = '\0';
- if (mo && mo<13 && atoi(date) && atoi(date)<=days[mo-1])
- return OK;
- error_message("Invalid date");
- return ERROR;
- }
-
- /*---------Åα«µÑßß óó«ñá ñá¡¡δσ ó Φáí½«¡ φ¬αá¡á-----------*/
- int data_entry(WINDOW *wnd)
- {
- FIELD *fld;
- int exitcode, isvalid, done=FALSE, oldhelpkey=helpkey;
- field_tally(wnd);
- fld = FHEAD;
-
- - 20 -
- /*--¡á¬«»½Ñ¡¿Ñ ñá¡¡δσ, »«ßΓπ»áεΘ¿σ ß ¬½áó¿áΓπαδ ¡á φ¬αá¡Ñ --*/
- while (fld != NULL && done == FALSE) {
- set_help(fld->fhwin, fld->flx, fld->fly);
- helpkey = (fld->fhelp) ? 0 : oldhelpkey;
- wcursor(wnd, fld->fcol, fld->frow);
- if (fld->fprot ==FALSE) {
- reverse_video(wnd);
- data_value(wnd, fld);
- wcursor(wnd, fld->fcol, fld->frow);
- exitcode = read_field(wnd, fld);
- isvalid = (exitcode != ESC && fld->fvalid) ?
- (*(fld->fvalid))(fld->fbuff) : OK;
- }
- else {
- exitcode = FWD;
- isvalid = OK;
- }
- if (isvalid == OK) {
- normal_vileo(wnd);
- data_value(wnd, fld);
- switch (exitcode) { /* »ÑαÑñá¡« αÑñá¬Γ«απ */
- case F1: if (fld->fhelp) {
- (*(fld->fhelp))(fld->fbuff);
- data_value(wnd, fld);
- }
- break;
- case DN:
- case '\r':
- case '\t':
- case FWD: fld = fld->fnxt;
- if (fld == NULL)
- fld = FHEAD;
- break;
- case UP:
- case BS: fld = fld->fprv;
- if (fld == NULL)
- fld = FTAIL;
-
- - 21 -
- break;
- default: done = endstroke(exitcode);
- break;
- }
- }
- }
- helpkey = oldhelpkey;
- return (exitcode);
- }
- /*-------- «Γ«íαáªÑ¡¿Ñ »α¿ú½áΦÑ¡¿∩ ¬ óó«ñπ---------*/
- void wprompt(WINDOW *wnd, int x, int y, char *s)
- {
- wcursor(wnd, x, y);
- wprintf(wnd, s);
- }
-
-
- Ä»¿ßá¡¿Ñ »α«úαá¼¼δ: entry.c
- -----------------------------------------------------------------
-
- îá¬α««»αÑñѽѡ¿Ñ FIELDCHAR »α«úαá¼¼δ entry.c ¿ñÑ¡Γ¿Σ¿µ¿απÑΓ
- ߻ѵ¿á½∞¡δÑ ß¿¼ó«½δ, ¿ß»«½∞ºπѼδÑ ó ß¿¼ó«½∞¡«⌐ ¼á᪥ »«½∩ »α¿
- «»αÑñѽѡ¿¿ íá⌐Γ«ó ñá¡¡δσ. Å« ßπΓ¿ ñѽá, ¿ñÑ¡Γ¿Σ¿µ¿α«óá¡¡δÑ ß
- »«¼«Θ∞ε FIELDCHAR ß¿¼ó«½δ ¡Ñ ∩ó½∩εΓß∩ ß¿¼ó«½á¼¿ ó ß¼δ᫥ ñá¡¡δσ,
- Γᬠ¬á¬ ¿ß»«½∞ºπεΓß∩ ó ¼á߬Ñ. é ¬áτÑßΓóÑ º¡áτÑ¡¿∩ FIELDCHAR
- óδßΓπ»áÑΓ ß¿¼ó«½ ¡¿ª¡Ñú« »«ñτÑનóá¡¿∩. éδ ¼«ªÑΓÑ ¿º¼Ñ¡¿Γ∞
- «»αÑñѽѡ¿Ñ FIELDCHAR, ¿ß»«½∞ºπ∩ ñαπú¿Ñ ß¿¼ó«½δ.
-
- Åα¿ó∩º¬á »«½Ñ⌐ ¬ «¬¡á¼ «ßπΘÑßΓó½∩ÑΓß∩ ß »«¼«Θ∞ε ñó«⌐¡«ú«
- ßó∩º¡«ú« ß»¿ß¬á. 滿߫¬ ¡áτ¿¡áÑΓß∩ ¿ ºá¬á¡τ¿óáÑΓß∩ ó ßΓαπ¬ΓπαÑ
- WINDOW ñ½∩ »«½∩. èáªñ«Ñ »«½Ñ »αÑñßΓáó½Ñ¡« »«ßαÑñßΓó«¼ ßΓαπ¬Γπαδ
- FIELD, ¬«Γ«αá∩ αẼÑΘáÑΓß∩ ó »á¼∩Γ¿ »α¿ πßΓá¡«ó¬Ñ »«½∩.
-
- öπ¡¬µ¿∩ init_template ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¿¡¿µ¿á½¿ºáµ¿¿ «¬¡á ß
- Φáí½«¡«¼ óó«ñá ñá¡¡δσ. Ä¡á óδ»«½¡∩ÑΓ Γαáßß¿α«ó¬π ßó∩º¡«ú« ß»¿ß¬á
- FIELD ¿ «ßó«í«ªñáÑΓ ¡Ñ¬«Γ«αδÑ αẼÑΘÑ¡¡δÑ αá¡ÑÑ ó »á¼∩Γ¿
- ßΓαπ¬Γπαδ FIELD.
-
- - 22 -
-
- öπ¡¬µ¿∩ establish_field αẼÑΘáÑΓ ó »á¼∩Γ¿ ¿ ¿¡¿µ¿á½¿º¿απÑΓ
- íπΣÑα FIELD, ¿ß»«½∞ºπ∩ »ÑαÑñáóáѼδÑ Ñ⌐ »α¿ «íαáΘÑ¡¿¿ º¡áτÑ¡¿∩ ¿½¿
- »α¿¡¿¼á∩ º¡áτÑ¡¿∩ »ÑαÑñáóáѼδσ »ÑαѼѡ¡δσ »« π¼«½τá¡¿ε. îá߬á,
- »«º¿µ¿∩ αẼÑΘÑ¡¿∩ »«½∩, áñαÑß íπΣÑαá ¿ Γ¿» ñá¡¡δσ »«½∩
- »ÑαÑñáεΓß∩ Σπ¡¬µ¿¿ »α¿ «íαáΘÑ¡¿¿ ¬ ¡Ñ⌐. ÄτÑαÑñ¡á∩ ßΓαπ¬Γπαá FIELD
- ñ«íáó½∩ÑΓß∩ ó ¬«¡Ñµ ß««ΓóÑΓßΓóπεΘÑú« ßó∩º¡«ú« ß»¿ß¬á FIELD,
- ߻ѵ¿Σ¿µ¿α«óá¡¡«ú« WINDOW. ô¬áºáΓѽ∞ ¡á «τÑαÑñ¡πε ßΓαπ¬Γπαπ FIELD
- ó«ºóαáΘáÑΓß∩ ó Γ«τ¬π ó맮óá Σπ¡¬µ¿¿.
-
- öπ¡¬µ¿∩ addfield óδºδóáÑΓß∩ ñ½∩ ñ«íáó½Ñ¡¿∩ ßΓαπ¬Γπαδ FIELD ¬
- ßó∩º¡«¼π ß»¿ß¬π, ߻ѵ¿Σ¿µ¿α«óá¡¡«¼π WINDOW.
-
- öπ¡¬µ¿∩ disp_field ¿ß»«½∞ºπÑΓß∩ ñ½∩ óδó«ñá º¡áτÑ¡¿⌐ ñá¡¡δσ,
- óóÑñÑ¡¡δσ ó »«½∩, ¿º íπΣÑαá ¡á φ¬αá¡ ñ¿ß»½Ñ∩. îá߬á ñá¡¡δσ,
- »ÑαÑñáóáѼá∩ »α¿ «íαáΘÑ¡¿¿ ¬ Σπ¡¬µ¿¿, ¿ß»«½∞ºπÑΓß∩ »α¿
- «Γ«íαáªÑ¡¿¿ ß«ñÑন¼«ú« »«½∩. ÄíαáΘÑ¡¿Ñ ¬ Σπ¡¬µ¿¿ ß«ñÑনΓ
- WINDOW, π¬áºáΓѽ∞ íπΣÑαá »«½∩ ¿ π¬áºáΓѽ∞ ¼á߬¿. Å«ñαáºπ¼ÑóáÑΓß∩,
- τΓ« ¬παß«α ó «¬¡Ñ óßÑúñá πßΓá¡áó½¿óáÑΓß∩ ¡á »Ñαóπε »«º¿µ¿ε
- »Ñαó«ú« »«½∩ «¬¡á. 濼ó«½δ, σαá¡∩Θ¿Ñß∩ ó íπΣÑαÑ, «Γ«íαáªáεΓß∩ ¡á
- φ¬αá¡Ñ ó¼ÑßΓÑ ß ß¿¼ó«½á¼¿ »π¡¬Γπᵿ¿, ß«ßΓáó½∩εΘ¿¼¿ ¼áß¬π »«½∩.
- öπ¡¬µ¿∩ data_value »αÑñ¡áº¡áτáÑΓß∩ ñ½∩ «Γ«íαáªÑ¡¿∩ ΓѬπΘÑú«
- º¡áτÑ¡¿∩ »«½∩ ó «¬¡Ñ. öπ¡¬µ¿∩ πßΓá¡áó½¿óáÑΓ ¬παß«α ó «¬¡Ñ ó
- »«º¿µ¿ε »Ñαó«ú« ß¿¼ó«½á »«½∩ ¿ óδºδóáÑΓ Σπ¡¬µ¿ε disp_field,
- »ÑαÑñáóá∩ Ñ⌐ áñαÑß WINDOW ¿ áñαÑßá íπΣÑαá »«½∩ ¿ ¼á߬¿.
-
- öπ¡¬µ¿∩ field_fally ¿ß»«½∞ºπÑΓß∩ ñ½∩ óδñáτ¿ ¡á φ¬αá¡
- º¡áτÑ¡¿⌐ óßÑσ »«½Ñ⌐ Φáí½«¡á. Ä¡á «ßπΘÑßΓó½∩ÑΓ »α«ß¼«Γα
- "ßóÑασπ-󡿺" ßó∩º¡«ú« ß»¿ß¬á FIELD ¿ «ßπΘÑßΓó½∩ÑΓ «íαáΘÑ¡¿Ñ ¬
- Σπ¡¬µ¿¿ data_value ñ½∩ ¬áªñ«ú« »«½∩ Φáí½«¡á.
-
- öπ¡¬µ¿∩ field_window »αÑñ¡áº¡áτÑ¡á ñ½∩ πßΓá¡«ó¬¿ «¬«¡¡«⌐
- help-¿¡Σ«α¼áµ¿¿ ñ½∩ »«½∩. ô¬áºá¡¡δÑ »α¿ «íαáΘÑ¡¿¿ ¬ Σπ¡¬µ¿¿ ¿¼∩
- help-¿¡Σ«α¼áµ¿¿ ¿ ¬««αñ¿¡áΓδ φ¬αá¡á ñ½∩ ÑÑ óδñáτ¿ ¬«»¿απεΓß∩ ó
- ߻ѵ¿Σ¿µ¿α«óá¡¡πε »α¿ ó맮óÑ Σπ¡¬µ¿¿ ßΓαπ¬Γπαπ FIELD.
-
- öπ¡¬µ¿∩ clear_template «íαáíáΓδóáÑΓ "ßóÑασπ-󡿺" ßó∩º¡«⌐
-
- - 23 -
- ß»¿ß«¬ FIELD ñ½∩ ߻ѵ¿Σ¿µ¿α«óá¡¡«ú« «¬¡á. öπ¡¬µ¿∩ »αÑ«íαáºπÑΓ
- íπΣÑα ¬áªñ«ú« »«½∩ Φáí½«¡á ó »πßΓπε ßΓ᫬π, ºá¬á¡τ¿óáεΘπεß∩
- ¡π½Ñóδ¼ ß¿¼ó«½«¼, ¿ß»«½∞ºπ∩ ¼áß¬π »«½∩ ñ½∩ «»αÑñѽѡ¿∩
- πßΓá¡«ó½Ñ¡¡«⌐ »α¿ «»¿ßá¡¿¿ »«½∩ ñ½¿¡δ. è«úñá óßÑ »«½∩ «íαáí«Γá¡δ
- Γᬿ¼ «íαẫ¼ (»«τ¿ΘÑ¡δ), Σπ¡¬µ¿∩ «íαáΘáÑΓß∩ ¬ field_fally.
-
- Åα«úαá¼¼á óó«ñá ñá¡¡δσ αáí«ΓáÑΓ ó αѪ¿¼áσ óßΓáó¬¿ ¿ ºá¼Ñ¡δ
- ß¿¼ó«½«ó. è½áó¿Φá <鿯> (<Ins>) ¿ß»«½∞ºπÑΓß∩ ñ½∩ »ÑαѬ½ετÑ¡¿∩
- αѪ¿¼«ó αáí«Γδ »α«úαá¼¼δ, á »ÑαѼѡ¡á∩ insert_mode ß½πª¿Γ ñ½∩
- ¿¡ñ¿¬áµ¿¿ ΓѬπΘÑú« αѪ¿¼á αáí«Γδ. öπ¡¬µ¿∩ insert_status ¿º¼Ñ¡∩ÑΓ
- Γ¿» ¬παß«αá ó ß««ΓóÑΓßΓó¿¿ ß« º¡áτÑ¡¿Ñ¼ »ÑαѼѡ¡«⌐ insert_mode.
- ÉѪ¿¼ óßΓáó¬¿ «íπß½áó½¿óáÑΓ ¡á½¿τ¿Ñ ¬óáñαáΓ¡«ú« ¬παß«αá, á αѪ¿¼
- ºá¼Ñ¡δ ß¿¼ó«½«ó - ¡á½¿τ¿Ñ ¬παß«αá ó ó¿ñÑ ¡¿ª¡Ñú« »«ñτÑનóá¡¿∩.
- ä½∩ ¿º¼Ñ¡Ñ¡¿∩ Σ«α¼δ ¬παß«αá ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩ set_cursor_type
- ¿º í¿í½¿«ΓѬ¿ ibmpc.c (ß¼. â½áóπ 4).
-
- öπ¡¬µ¿∩ read_field ¿ß»«½∞ºπÑΓß∩ ñ½∩ τΓÑ¡¿∩ óóÑñÑ¡¡δσ
- »«½∞º«óáΓѽѼ ó »«½∩ ñá¡¡δσ. Ä¡á πßΓá¡áó½¿óáÑΓ ¬παß«α ó ¡áτὫ
- »«½∩ ¿ ßτ¿ΓδóáÑΓ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ß¿¼ó«½«ó ó ¡Ñ¼. äóá ½«¬á½∞¡δσ
- π¬áºáΓѽ∩ ¿ß»«½∞ºπεΓß∩ ñ½∩ Γαáßß¿α«ó¬¿ óó«ñ¿¼δσ ñá¡¡δσ. ô¬áºáΓѽ∞
- mask »«ºó«½∩ÑΓ »«½πτ¿Γ∞ ΓѬπΘπε »«º¿µ¿ε ó ¼á߬Ñ, á π¬áºáΓѽ∞ buff
- - ΓѬπΘπε »«º¿µ¿ε ó íπΣÑαÑ. Åα¿ »ÑαѼÑΘÑ¡¿¿ »«½∞º«óáΓѽѼ
- ¬παß«αá, π¡¿τΓ«ªÑ¡¿¿ ¿½¿ óó«ñÑ ß¿¼ó«½«ó º¡áτÑ¡¿Ñ φΓ¿σ π¬áºáΓѽÑ⌐
- ¬«ααÑ¬Γ¿απÑΓß∩.
-
- Åα¿ óδ»«½¡Ñ¡¿¿ «»Ñαᵿ¿ »« π¡¿τΓ«ªÑ¡¿ε ß¿¼ó«½«ó ¿ß»«½∞ºπÑΓß∩
- Σπ¡¬µ¿∩ Æπαí« æ¿ movmem, ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ßñó¿úá ß¿¼ó«½«ó
- ó íπΣÑαÑ, á Γá¬ªÑ Σπ¡¬µ¿∩ disp_field ñ½∩ «Γ«íαáªÑ¡¿∩ αѺπ½∞ΓáΓ«ó
- «»Ñαᵿ¿ ¡á φ¬αá¡Ñ.
-
- è½áó¿Φá <鿯> (<Ins>) »ÑαѬ½ετáÑΓ αѪ¿¼δ éßΓáó¬¿/çá¼Ñ¡δ.
-
- àß½¿ ΓѬπΘÑÑ »«½Ñ ó¬½ετáÑΓ ó ßÑí∩ Γ«τ¬π (.), Γ« «¡« ß«ñÑনΓ
- ¡π½¿ ó ñóπσ ¬αá⌐¡¿σ »αáóδσ »«º¿µ¿∩σ (Ñß½¿ ñαπú¿Ñ º¡áτÑ¡¿∩ ó ¡¿σ
- ¡Ñ π¬áºá¡δ), óδαáó¡Ñ¡« ó»αáó«, á ß««ΓóÑΓßΓóπεΘ¿Ñ π¬áºáΓѽ¿ ¿
- ¬παß«α πßΓá¡áó½¿óáεΓß∩ ¡á º¡áτáΘ¿Ñ »«º¿µ¿¿, »αÑñ¡áº¡áτÑ¡¡δÑ ñ½∩
- π¬áºá¡¿∩ »Ñ¡¡¿ (ñѡѪ¡«⌐ Ññ¿¡¿µδ).
-
- - 24 -
-
- àß½¿ »«½∞º«óáΓѽ∞ ¡áªá½ ¬½áó¿Φπ, ß¿¼ó«½¿º¿απεΘπε ºáóÑαΦÑ¡¿Ñ
- óó«ñá ñá¡¡δσ, Γ« ñá¡¡á∩ ß¿Γπᵿ∩ «íαáíáΓδóáÑΓß∩ Σπ¡¬µ¿Ñ⌐
- endstroke, ¿ óó«ñ ñá¡¡δσ ºáóÑαΦáÑΓß∩. é »α«Γ¿ó¡«¼ ß½πτáÑ ß¿¼ó«½
- íπñÑΓ ºá»¿ßá¡ ó íπΣÑα. àß½¿ ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ «íαáíáΓδóὫß∞ ¡Ñ
- á½Σáó¿Γ¡«-µ¿Σα«ó«Ñ »«½Ñ, Γ« á¡á½¿º¿απÑΓß∩ ß¿Γπᵿ∩ ¡á »αÑñ¼ÑΓ
- óó«ñá »«½∞º«óáΓѽѼ τ¿ß½á. àß½¿ í佫 óóÑñÑ¡« ¡Ñ τ¿ß½«, Γ«
- óδñáÑΓß∩ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ, ¿ »α«úαá¼¼á ¡Ñ ó«ß»α¿¡¿¼áÑΓ
- óóÑñÑ¡¡δÑ ñá¡¡δÑ, ΓαÑíπ∩ ¿σ »«óΓ«α¡«ú« óó«ñá. àß½¿ ó¬½ετÑ¡ αѪ¿¼
- óßΓáó¬¿, Γ« ñá¡¡δÑ ó íπΣÑαÑ ß¼ÑΘáεΓß∩ ¡á «ñ¡π »«º¿µ¿ε ó»αáó«, á
- º¡áτÑ¡¿Ñ »«½∩ »«ß½Ñ óßΓáó¬¿ ß¿¼ó«½á «Γ«íαáªáÑΓß∩ ß »«¼«Θ∞ε
- Σπ¡¬µ¿¿ disp_field. Åα¿ φΓ«¼ ß¿¼ó«½ ºá»¿ßδóáÑΓß∩ ó íπΣÑα ¿
- «Γ«íαáªáÑΓß∩ ¡á φ¬αá¡Ñ. æ«ó¼ÑßΓ¡«Ñ ¿ß»«½∞º«óá¡¿Ñ π¬áºáΓѽÑ⌐ ¼á߬¿
- ¿ íπΣÑαá »«ºó«½∩ÑΓ "»ÑαÑ߬ᬿóáΓ∞" τÑαѺ ß¿¼ó«½δ »π¡¬Γπᵿ¿.
- Å«ß½Ñ óó«ñá »«ß½Ññ¡Ñú« ß¿¼ó«½á ó »«½Ñ ñá½∞¡Ñ⌐Φ¿⌐ óó«ñ ñá¡¡δσ ó
- ¡Ñú« »αѬαáΘáÑΓß∩.
-
- Å«ß½Ñ ºáóÑαΦÑ¡¿∩ óó«ñá ñá¡¡δÑ »α«óÑα∩εΓß∩ ¡á ñ«»πßΓ¿¼«ßΓ∞,
- ñáΓδ ¿ τ¿ß½á óδαáó¡¿óáεΓß∩, ¬παß«α πßΓá¡áó½¿óáÑΓß∩ ó
- ß««ΓóÑΓßΓóπεΘπε »«º¿µ¿ε »«½∩ ¿ ß«ñÑন¼«Ñ »«½Ñ⌐ «Γ«íαáªáÑΓß∩ ¡á
- φ¬αá¡Ñ.
-
- öπ¡¬µ¿∩ endstroke á¡á½¿º¿απÑΓ º¡áτÑ¡¿Ñ ¬½áó¿Φ ¿
- πßΓá¡áó½¿óáÑΓ ¬½áó¿Φ¿, ¬«Γ«αδÑ ¼«úπΓ »α¿óÑßΓ¿ ¬ ºáóÑαΦÑ¡¿ε
- »α«µÑßßá óó«ñá ñá¡¡δσ.
-
- àßΓ∞ ñóÑ Σπ¡¬µ¿¿, ºá¡¿¼áεΘ¿Ñß∩ óδαáó¡¿ó᡿Ѽ ñá¡¡δσ. ÅÑαóá∩
- - right_justify, óδαáó¡¿óáεΘá∩ ß»αáóá ¿ ºá»«½¡∩εΘá∩ »«½Ñ
- »α«íѽἿ. éΓ«αá∩ - right_justify_zero_fill, óδαáó¡¿óáεΘá∩ ß»αáóá
- ¿ ºá»«½¡∩εΘá∩ »«½Ñ ¡π½∩¼¿.
-
- öπ¡¬µ¿∩ spaces á¡á½¿º¿απÑΓ »«½Ñ ¡á ¡á½¿τ¿Ñ óßÑσ »α«íѽ«ó.
-
- öπ¡¬µ¿∩ validate_date «ßπΘÑßΓó½∩ÑΓ »α«óÑα¬π ñáΓδ.
-
- öπ¡¬µ¿∩ data_entry óδºδóáÑΓß∩ ñ½∩ «íαáí«Γ¬¿ óßÑσ »«½Ñ⌐
- Φáí½«¡á. öπ¡¬µ¿∩ óδºδóáÑΓ field_fally ñ½∩ óδñáτ¿ ¡á φ¬αá¡ óßÑσ
-
- - 25 -
- º¡áτÑ¡¿⌐ ñá¡¡δσ ¿º ß««ΓóÑΓßΓóπεΘ¿σ íπΣÑα«ó »«½Ñ⌐. çáΓѼ Σπ¡¬µ¿∩
- «íαáíáΓδóáÑΓ "ßóÑασπ-󡿺" ßó∩º¡δ⌐ ß»¿ß«¬ ßΓαπ¬Γπα FIELD ¿
- π»αáó½∩ÑΓ óó«ñ«¼ ñá¡¡δσ ó ¬áªñ«¼ »«½Ñ.
-
- öπ¡¬µ¿∩ set_help óδºδóáÑΓß∩ ñ½∩ «ßπΘÑßΓó½Ñ¡¿∩ »α¿ó∩º¬¿
- «¬«¡¡«⌐ help-¿¡Σ«α¼áµ¿¿ ¬ ¬«¡¬αÑΓ¡«¼π »«½ε. ū߬«½∞¬π º¡áτÑ¡¿Ñ
- ú½«íá½∞¡«⌐ »ÑαѼѡ¡«⌐ helpkey «»αÑñѽѡ« ºáαá¡ÑÑ, Γ« »«»δΓ¬á
- »«½πτ¿Γ∞ ñ½∩ φΓ«ú« »«½∩ ߻ѵ¿á½∞¡πε help-¿¡Σ«α¼áµ¿ε ºá¬«¡τ¿Γß∩
- íѺπß»ÑΦ¡«, »«ß¬«½∞¬π »α«úαá¼¼á data_entry íπñÑΓ »ÑαÑσóáΓδóáΓ∞
- »αÑαδóá¡¿Ñ «Γ ¬½áó¿Φ¿ help-Σπ¡¬µ¿¿.
-
- àß½¿ »«½Ñ ¡Ñ ∩ó½∩ÑΓß∩ ºáΘ¿ΘÑ¡¡δ¼, Γ« Σπ¡¬µ¿∩ reverse_video
- óδºδóáÑΓß∩ ¬áªñδ⌐ αáº, ¬«úñá ¡Ñ«íσ«ñ¿¼« »«½πτ¿Γ∞ óδñѽѡ¡«Ñ
- «Γ«íαáªÑ¡¿Ñ »«½∩ ó ß««ΓóÑΓßΓó¿¿ ß ¬«¡Σ¿úπαᵿÑ⌐ µóÑΓ«ó,
- «»αÑñѽѡ¡«⌐ »áαá¼ÑΓα«¼ ACCENT. ä½∩ óδñáτ¿ ¡á φ¬αá¡ º¡áτÑ¡¿∩
- ΓѬπΘÑú« »«½∩ ó á¬µÑ¡Γ¿α«óá¡¡«¼ αѪ¿¼Ñ, «»αÑñѽ∩Ѽ«¼ »áαá¼ÑΓα«¼
- ACCENT, ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩ data_value, á ñ½∩ óó«ñá ó »α«úαá¼¼π
- óóÑñÑ¡¡δσ ó »«½Ñ »«½∞º«óáΓѽѼ ñá¡¡δσ »α¿¼Ñ¡∩ÑΓß∩ Σπ¡¬µ¿∩
- read_field. ç¡áτÑ¡¿Ñ¼, ó«ºóαáΘáÑ¼δ¼ Σπ¡¬µ¿Ñ⌐ read_field, ∩ó½∩ÑΓß∩
- ¿Γ«ú«óá∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ß¿¼ó«½«ó, ßπΓ∞ ¬«Γ«α«⌐ - óóÑñÑ¡¡δÑ ó
- »«½Ñ ñá¡¡δÑ. àß½¿ »«½Ñ ¿¼ÑÑΓ ßó«ε ߻ѵ¿á½∞¡πε Σπ¡¬µ¿ε ¬«¡Γα«½∩
- ñá¡¡δσ, Γ« óδºδóáÑΓß∩ φΓá Σπ¡¬µ¿∩.
-
- Åα¿ πß½«ó¿¿, τΓ« ¬«¡Γα«½∞ ñá¡¡δσ »« óßѼ »áαá¼ÑΓαá¼ »α«Φѽ
- ¡«α¼á½∞¡«, Σπ¡¬µ¿∩ normal_video »ÑαÑó«ñ¿Γ «¬¡« ó Γᬠ¡áºδóáѼδ⌐
- ¬«¡Γα«½∞¡δ⌐ αѪ¿¼ «Γ«íαáªÑ¡¿∩ ñá¡¡δσ, µóÑΓ ¬«Γ«α«ú« «»αÑñѽ∩ÑΓß∩
- º¡áτÑ¡¿Ñ¼ NORMAL, ¿ Σπ¡¬µ¿∩ data_value »«óΓ«α¡« óδó«ñ¿Γ ¡á φ¬αá¡
- º¡áτÑ¡¿Ñ »«½∩, ¡« πªÑ ó NORMAL-µóÑΓÑ. çáΓѼ á¡á½¿º¿απÑΓß∩
- ºáóÑαΦáεΘá∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ¡áªáΓ¿∩ ¬½áó¿Φ. àß½¿ óó«ñ ñá¡¡δσ
- »αÑαóá¡ ¬½áó¿ΦÑ⌐, ºá¬αÑ»½Ñ¡¡«⌐ ºá óδº«ó«¼ ß»Ñµ¿á½∞¡«⌐
- help-Σπ¡¬µ¿¿, Γ« «ßπΘÑßΓó½∩ÑΓß∩ «íαáΘÑ¡¿Ñ ¬ φΓ«⌐ Σπ¡¬µ¿¿. é ßó∩º¿
- ß ΓѼ, τΓ« ó »α«µÑßßÑ «íαáí«Γ¬¿ »«½Ñ⌐ αÑ὿º«óá¡á 󫺼«ª¡«ßΓ∞
- ºá¼Ñ¡∩Γ∞ íπΣÑਧ«óá¡¡δÑ ñá¡¡δÑ »«½Ñ⌐ »«½¡«ßΓ∞ε, Σπ¡¬µ¿∩
- data_value ß¡«óá óδºδóáÑΓß∩ ñ½∩ »«óΓ«α¡«ú« «Γ«íαáªÑ¡¿∩ »«½∩ »«ß½Ñ
- Ñú« «íαáí«Γ¬¿.
-
- çáóÑαΦáεΘÑ⌐ ¬½áó¿ΦÑ⌐ ó »α«µÑßßÑ óó«ñá ñá¡¡δσ ¼«úπΓ íδΓ∞ ½¿í«
-
- - 26 -
- ¬½áó¿Φ¿ ñó¿ªÑ¡¿∩ ó»ÑαÑñ (ßΓαѽ¬á 󡿺, ééÄä, Æáí), ½¿í« ¬½áó¿Φ¿
- ñó¿ªÑ¡¿∩ ¡áºáñ (ßΓαѽ¬á óóÑασ, ßΓαѽ¬á ó½Ñó«). æ½ÑñπεΘÑÑ »«½Ñ ñ½∩
- «íαáí«Γ¬¿ óδí¿αáÑΓß∩ ¿º ßó∩º¡«ú« ß»¿ß¬á FIELD, ߻ѵ¿Σ¿µ¿α«óá¡¡«ú«
- »áαá¼ÑΓα«¼ WINDOW, ó ºáó¿ß¿¼«ßΓ¿ «Γ º¡áτÑ¡¿⌐ φΓ¿σ ¬½áó¿Φ (ó»ÑαÑñ
- ¿½¿ ¡áºáñ). Åα¿ φΓ«¼ óδí¿αáÑΓß∩ ß½ÑñπεΘÑÑ ¿½¿ »αÑñδñπΘÑÑ »«½Ñ, ¿
- óó«ñ ñá¡¡δσ »α«ñ«½ªáÑΓß∩.
-
- àß½¿ »«ß½Ññ¡Ñ⌐ íδ½á ¡áªáΓá «ñ¡á ¿º ΓÑσ ¬½áó¿Φ, ¬«Γ«αδÑ
- á¡á½¿º¿απεΓß∩ Σπ¡¬µ¿Ñ⌐ endstroke ¿ ¡Ñ ∩ó½∩εΓß∩ á¡á½«ú«¼ αá¡ÑÑ
- óßΓαÑτáεΘ¿σß∩ ¿ á¡á½¿º¿απѼδσ Σπ¡¬µ¿Ñ⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓÑ⌐, Γ«
- óó«ñ ñá¡¡δσ ó «¬«¡¡δ⌐ Φáí½«¡ ºáóÑαΦáÑΓß∩, ¿ Σπ¡¬µ¿∩ data_entry
- ó«ºóαáΘáÑΓ π»αáó½Ñ¡¿Ñ ó Γ«τ¬π ó맮óá.
-
-
-
- Åα¿¼Ñα: éó«ñ ñá¡¡δσ ó «»αÑñѽѡ¡«¼ »«α∩ñ¬Ñ
- -----------------------------------------------------------------
-
- êßσ«ñ¡δÑ Σá⌐½δ, »αÑñßΓáó½Ñ¡¡δÑ ¡á ½¿ßΓ¿¡úáσ 8.2, 8.3 ¿ 8.4,
- ßπΓ∞ »α¿¼Ñαδ ¿ß»«½∞º«óá¡¿∩ Φáí½«¡á óó«ñá ñá¡¡δσ ó «¬¡Ñ. ï¿ßΓ¿¡ú
- 8.2, order.c, »αÑñßΓáó½∩ÑΓ ß«í«⌐ ΓѬßΓ ú½áó¡«⌐ Σπ¡¬µ¿¿ (main),
- ¬«Γ«αá∩ «ßπΘÑßΓó½∩ÑΓ «íαáΘÑ¡¿Ñ ¬ Σπ¡¬µ¿¿ ordent.c,
- ¡Ñ»«ßαÑñßΓóÑ¡¡« αÑ὿ºπεΘÑ⌐ »α¿¼Ñα. öπ¡¬µ¿∩ ordent.c íπñÑΓ ó
- ñá½∞¡Ñ⌐ΦѼ »α¿ßπΓßΓó«óáΓ∞ »α¿ αáßß¼«ΓαÑ¡¿¿ »α¿¼Ñαá ¼Ñ¡ε ó â½áóÑ
- 10 ¿ αѺ¿ñÑ¡Γ¡«⌐ πΓ¿½¿Γδ ó â½áóÑ 12. ï¿ßΓ¿¡ú 8.4 »αÑñßΓáó½∩ÑΓ
- ß«í«⌐ make-Σá⌐½ order.prj, ¿ß»«½∞ºπѼδ⌐ πΓ¿½¿Γ«⌐ make Æπαí« æ¿
- ñ½∩ »«ßΓα«Ñ¡¿∩ »α«úαá¼¼δ »α¿¼Ñαá.
-
- ä½∩ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ »α¿¼Ñαá óóÑñ¿ΓÑ ¬«¼á¡ñπ
-
- C>order
-
- Ĭ¡«, »αÑñßΓáó½Ñ¡¡«Ñ ¡á α¿ßπ¡¬Ñ 8.2, ∩ó½∩ÑΓß∩ »« ßπΓ¿ ñѽá
- "óß»½δóáεΘ¿¼", Γ« ÑßΓ∞ »«∩ó½∩εΘ¿¼ß∩ ó »«º¿µ¿¿ ¬παß«αá. Äñ¡á¬«
- «íαáΓ¿ΓÑß∞ ¬ ½¿ßΓ¿¡úπ 8.3, ordent.c, »αÑñóáα¿Γѽ∞¡« «º¡á¬«¼¿óΦ¿ß∞
- ß «»¿ß᡿Ѽ »α«úαá¼¼δ, »α¿óÑñÑ¡¡δ¼ ¡¿ªÑ. Å«ß½Ñ Γ«ú«, ¬á¬ óδ
- «º¡á¬«¼¿½¿ß∞ ß ½¿ßΓ¿¡ú«¼, óδ»«½¡¿ΓÑ »α«úαá¼¼π.
-
- - 27 -
-
- ┌───────────────────────────────────────────────────────────────┐
- │ │
- │ C> │
- │ │
- │ ┌────────────Order Entry─────────────┐ │
- │ │ │ │
- │ │ Name: │ │
- │ │ Address: │ │
- │ │ City: │ │
- │ │ State: Zip: │ │
- │ │ │ │
- │ │ Amount: . │ │
- │ │ Date: / / │ │
- │ │ │ │
- │ │ Phone: ( ) - │ │
- │ │ │ │
- │ └────────────────────────────────────┘ │
- │ │
- └───────────────────────────────────────────────────────────────┘
-
- É¿ß.8.2. ÄíαáºÑµ óó«ñá Φáí½«¡á óó«ñá ñá¡¡δσ
-
-
- Åα¿¼Ñα »α«úαá¼¼δ ¡áτ¿¡áÑΓß∩ ß πßΓá¡«ó¬¿ «¬¡á ¿ »ÑαÑñáτ¿ Ѽπ
- º¡áτÑ¡¿∩ ºáú«½«ó¬á ¿ µóÑΓá. Ĭ¡« «Γ«íαáªáÑΓß∩ ¡á φ¬αá¡Ñ ñ¿ß»½Ñ∩,
- ¿ ó Φáí½«¡Ñ »«∩ó½∩ÑΓß∩ »α¿ú½áΦÑ¡¿Ñ ¬ óó«ñπ ñá¡¡δσ. ū߽Ñ
- «íαáΘÑ¡¿∩ ¬ Σπ¡¬µ¿¿ init_template «ßπΘÑßΓó½∩ÑΓß∩ ¿ñÑ¡Γ¿Σ¿¬áµ¿∩
- help-¿¡Σ«α¼áµ¿¿ ñ½∩ ¬áªñ«ú« »«½∩ (help-¿¡Σ«α¼áµ¿∩ αẼÑΘáÑΓß∩ ó
- »αÑñѽáσ «¬¡á), ¬«Γ«αá∩ »«∩ß¡∩ÑΓ ¡áº¡áτÑ¡¿Ñ óó«ñ¿¼δσ ó ¬áªñ«Ñ
- »«½Ñ ñá¡¡δσ. ôßΓá¡«ó¬á «¬«¡¡«⌐ help-¿¡Σ«α¼áµ¿¿ «ßπΘÑßΓó½∩ÑΓß∩
- »πΓѼ «íαáΘÑ¡¿∩ ¬ Σπ¡¬µ¿¿ field_window. èáªñ«Ñ »«½Ñ
- ¡Ñ»«ßαÑñßΓóÑ¡¡« πßΓá¡áó½¿óáÑΓß∩ ó Φáí½«¡Ñ »πΓѼ «íαáΘÑ¡¿∩ ¬
- Σπ¡¬µ¿¿ establish_field. ū߽Ññ¡ÑÑ »«½Ñ πßΓá¡áó½¿óáÑΓß∩ ó φΓ«¼
- »α¿¼ÑαÑ ¬á¬ ¡Ñ ¿ß»«½∞ºπεΘÑÑ «¬«¡¡πε help-¿¡Σ«α¼áµ¿ε. Å«φΓ«¼π ñ½∩
- ñá¡¡«ú« »«½∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ field_help ¿ñÑ¡Γ¿Σ¿µ¿απÑΓß∩
- ߻ѵ¿á½∞¡á∩ help-Σπ¡¬µ¿∩. ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ, τΓ« «ñ¡« »«½Ñ
-
- - 28 -
- Φáí½«¡á - "state" - «»¿ßá¡« ¬á¬ ¿¼ÑεΘÑÑ ß»Ñµ¿á½∞¡πε Σπ¡¬µ¿ε
- ¬«¡Γα«½∩ ñá¡¡δσ, óó«ñ¿¼δσ ó ¡Ñú«, ¡á ñ«ßΓ«óÑα¡«ßΓ∞. ¥Γá
- ߻ѵ¿á½∞¡á∩ Σπ¡¬µ¿∩ ¬«¡Γα«½∩ ñá¡¡δσ ߻ѵ¿Σ¿µ¿α«óá¡á ó «íαáΘÑ¡¿¿ ¬
- Σπ¡¬µ¿¿ field_validate.
-
- Åα«úαá¼¼á «íαáΘáÑΓß∩ ¬ Σπ¡¬µ¿¿ clear_template ñ½∩ »«½πτÑ¡¿∩
- »πßΓ«ú« Φáí½«¡á óó«ñá ñá¡¡δσ, á ºáΓѼ - ¬ Σπ¡¬µ¿¿ data_entry,
- »«ºó«½∩εΘÑ⌐ «íαáíáΓδóáΓ∞ ñá¡¡δÑ, óó«ñ¿¼δÑ ó Φáí½«¡. Å« ºáóÑαΦÑ¡¿ε
- αáí«Γδ Σπ¡¬µ¿¿ data_entry »α«úαá¼¼á π¡¿τΓ«ªáÑΓ «¬¡«. é αÑá½∞¡«⌐
- ºáñáτÑ ó φΓ«⌐ Γ«τ¬Ñ »α«úαá¼¼δ óδ ñ«½ª¡δ »αÑñπß¼«ΓαÑΓ∞ «íαáí«Γ¬π
- óóÑñÑ¡¡δσ ñá¡¡δσ. é ¡áΦѼ »α¿¼ÑαÑ »«ß½Ñ π¡¿τΓ«ªÑ¡¿∩ «¬¡á
- »α«úαá¼¼á ºáóÑαΦáÑΓ ßó«ε αáí«Γπ.
-
- é« óαѼ∩ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ «íαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ, ¬á¬¿¼
- «íαẫ¼ óó«ñ¿¼δÑ ß¿¼ó«½δ »«¼ÑΘáεΓß∩ ó »«º¿µ¿¿ «»αÑñѽѡ¡δσ »«½Ñ⌐,
- á Γá¬ªÑ ¡á π»αáó½Ñ¡¿Ñ ¬παß«α«¼. ÉѪ¿¼ éßΓáó¬¿/çá¼Ñ¡δ ß¿¼ó«½«ó
- π»αáó½∩ÑΓß∩ ß »«¼«Θ∞ε ¬½áó¿Φ¿ <Ins> ¿ ¿¡ñπµ¿απÑΓß∩
- ß««ΓóÑΓßΓóπεΘÑ⌐ Σ«α¼«⌐ ¬παß«αá. àß½¿ ¬παß«α «Γ«íαáªáÑΓß∩ ¬á¬
- ¼ÑαµáεΘ¿⌐ ß¿¼ó«½ »«ñτÑનóá¡¿∩ ó «íδτ¡«¼ ßó«Ñ¼ ó¿ñÑ, Γ« φΓ«
- «º¡áτáÑΓ, τΓ« ñá¡¡δÑ óó«ñ∩Γß∩ ó αѪ¿¼Ñ ºá¼Ñ¡δ ß¿¼ó«½«ó. ū߽Ñ
- Γ«ú«, ¬á¬ óδ ¡áª¼ÑΓÑ ¬½áó¿Φπ <Ins>, ¬παß«α »α¿¼ÑΓ Σ«α¼π
- ¼ÑαµáεΘÑú« »α∩¼«πú«½∞¡¿¬á, ¿ óδ íπñÑΓÑ »α«ñ«½ªáΓ∞ αáí«Γπ ó αѪ¿¼Ñ
- óßΓáó¬¿ ß¿¼ó«½«ó.
-
- ì᪼¿ΓÑ ¬½áó¿Φπ <F1> ñ½∩ »«½πτÑ¡¿∩ ß»αáó«τ¡«⌐ ¿¡Σ«α¼áµ¿¿ »«
- ¬áªñ«¼π ¿º »«½Ñ⌐ Φáí½«¡á. ìá α¿ßπ¡¬Ñ 8.3 ¿º«íαáªÑ¡ Φáí½«¡ ß
- ¡Ñ¬«Γ«α묨 º¡áτÑ¡¿∩¼¿ »«½Ñ⌐ ó ¼«¼Ñ¡Γ óδñáτ¿ »« ºá»α«ßπ
- »«½∞º«óáΓѽ∩ «¬«¡¡«⌐ help-¿¡Σ«α¼áµ¿¿. ì᪼¿ΓÑ ¬½áó¿Φπ <F1> ñ½∩
- »«½∩ "State" ¿ »«½πτ¿ΓÑ «¬«¡¡πε help-¿¡Σ«α¼áµ¿ε ñ½∩ ¡Ñú«.
- ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ, τΓ« ó ¬áτÑßΓóÑ help-¿¡Σ«α¼áµ¿¿ óδßΓπ»áÑΓ
- »ÑαÑτÑ¡∞ ñ«»πßΓ¿¼δσ º¡áτÑ¡¿⌐ »«½∩ "State". éδíÑα¿ΓÑ «ñ¡« ¿º ¡¿σ ¿
- óóÑñ¿ΓÑ ó ¬áτÑßΓóÑ º¡áτÑ¡¿∩ »«½∩. ìá »α¿¼ÑαÑ φΓ«ú« »«½∩
- ó¡¿¼áΓѽ∞¡« ¿ºπτ¿ΓÑ, ¬á¬ αáí«ΓáÑΓ ß»Ñµ¿á½∞¡á∩ Σπ¡¬µ¿∩ ¬«¡Γα«½∩
- ñá¡¡δσ, ¬á¬ «¡á ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿ε error_message ñ½∩ óδñáτ¿
- ß««íΘÑ¡¿⌐ « óó«ñÑ ¡Ññ«»πßΓ¿¼δσ ñá¡¡δσ. É¿ßπ¡«¬ 8.4 ¡áú½∩ñ¡«
- ñѼ«¡ßΓα¿απÑΓ ¿¼Ñ¡¡« ß½πτá⌐ ¡Ñ»αáó¿½∞¡«ú« óó«ñá ñá¡¡δσ ó »«½Ñ
- "State". æ»Ñµ¿á½∞¡á∩ help-Σπ¡¬µ¿∩ ñ½∩ »«½∩ ñáΓδ ("Date")
-
- - 29 -
- ñѼ«¡ßΓα¿απÑΓ, ¬á¬ ¼«ª¡« »«½πτ¿Γ∞ º¡áτÑ¡¿Ñ ñáΓδ ¿ºó¡Ñ Σπ¡¬µ¿¿
- data_entry. é ñá¡¡«¼ »α¿¼ÑαÑ ñ½∩ τΓÑ¡¿∩ ΓѬπΘÑ⌐ ñáΓδ ¿ß»«½∞ºπÑΓß∩
- Σπ¡¬µ¿∩ Æπαí« æ¿ getdate, »«ß½Ñ τÑú« ΓѬπΘá∩ ñáΓá ºá»¿ßδóáÑΓß∩ ó
- ß««ΓóÑΓßΓóπεΘ¿⌐ íπΣÑα »«½∩ "Date".
-
- ┌───────────────────────────────────────────────────────────────┐
- │ │
- │ C> ┌────────────────────────────┐ │
- │ │ Enter the address of the │ │
- │ │ person who is placing the │ │
- │ ┌──────────── Order entry│ order. │ │
- │ │ │ [Help] to return │ │
- │ │ └─────────────────────┬──────┘ │
- │ │ Name: Clifford Brown │ │
- │ │ Address: 123 Main Street │ │
- │ │ City: Springfield │ │
- │ │ State: VA Zip: 21333 │ │
- │ │ │ │
- │ │ Amount: 23.40 │ │
- │ │ Date: 26/07/87 │ │
- │ │ │ │
- │ │ Phone: (202) 321-3211 │ │
- │ │ │ │
- │ └──────────────────────────────────────────────┘ │
- │ │
- └───────────────────────────────────────────────────────────────┘
-
- É¿ß. 8.3. ÄíαáºÑµ óó«ñá Φáí½«¡á óó«ñá ñá¡¡δσ ß ñá¡¡δ¼¿
- ¿ help-¿¡Σ«α¼áµ¿Ñ⌐
-
-
-
- ┌───────────────────────────────────────────────────────────────┐
- │ │
- │ C> │
- │ │
- │ │
-
- - 30 -
- │ ┌─────────────Order Entry─────────────────┐ │
- │ │ │ │
- │ │ Name: Clifford Brown │ │
- │ │ Address: 123 Main Street │ │
- │ │ City: Springfield │ │
- │ │ State: TX Zip: 21333 │ │
- │ │ │ │
- │ │ Amount: 23.40 │ │
- │ │ Date: 26/07/87 │ │
- │ │ │ │
- │ │ Phone: (202) 321-3211 │ │
- │ │ │ │
- │ └─────────────────────────────────────────┘ │
- │ │
- │ ┌─────ERROR!─────┐ │
- │ │ │ │
- │ │ Invalid State │ │
- │ └────────────────┘ │
- │ │
- └───────────────────────────────────────────────────────────────┘
-
- É¿ß. 8.4. Åα«óÑα¬á ¬«ααÑ¬Γ¡«ßΓ¿ óó«ñá ñá¡¡δσ
-
-
- ï¿ßΓ¿¡ú 8.2: order.c
-
- /*-----------order.c---------*/
-
- #include "twindow.h"
- void ordent(void);
-
- main()
- {
- load_help("tcprogs.hlp");
- ordent();
- }
-
-
- - 31 -
-
- ï¿ßΓ¿¡ú 8.3: ordent.c
-
- /*-----------------ordent.c----------------*/
-
- #include <dos.h>
- #include <stdio.h>
- #include <string.h>
- #include "twindow.h"
-
- struct {
- char name [26];
- char addr [26];
- char city [26];
- char state [3];
- char zip [6];
- char amt [6];
- char dt [7];
- char phone [11];
- } rcd;
-
- char msk25 [] = "__________________________";
- char mskamt [] = "____.____";
- char mskdate [] = "___/___/___/";
- char mskphone [] = "(___) ____-____";
- #define mskst msk25+23
- #define mskzip msk25+20
-
- int validate_state(char *, int);
- void help_date(char *);
-
- void ordent()
- {
- WINDOW *wnd;
- FIELD *fld;
-
- wnd = establish_window(10, 5, 15, 50);
-
- - 32 -
- set_title(wnd, " Order Entry ");
- set_colors(wnd, ALL, BLUE, AQUA, BRIGHT);
- set_colors(wnd, ACCENT, WHITE, BLACK, DIM);
- display_window(wnd);
- wprompt(wnd, 5, 2, "Name:");
- wprompt(wnd, 5, 3, "Address:");
- wprompt(wnd, 5, 4, "City:");
- wprompt(wnd, 5, 5, "State:");
- wprompt(wnd, 18, 5, "Zip:");
- wprompt(wnd, 5, 10, "Phone:");
- wprompt(wnd, 5, 7, "Amount:");
- wprompt(wnd, 5, 8, "Date:");
- init_template(wnd);
- fld = establish_field(wnd, 15, 2, msk25, rcd.name, 'a');
- field_window(fld,"name ", 40, 1);
- fld = establish_field(wnd, 15, 3, msk25, rcd.addr, 'a');
- field_window(fld,"address ", 40, 2);
- fld = establish_field(wnd, 15, 4, msk25, rcd.city, 'a');
- field_window(fld, "address ", 40, 3);
- fld = establish_field(wnd, 15, 5, mskst, rcd.state, 'A');
- field_validate(fld, validate_state);
- field_window(fld,"state ", 40, 4);
- fld = establish_field(wnd, 23, 5, mskzip, rcd.zip, 'Z');
- field_window(fld,"address ", 40, 4);
- fld = establish_field(wnd,15,10,mskphone,rcd.phone, 'N');
- field_window(fld,"phone ", 40, 9);
- fld = establish_field(wnd, 15, 7, mskamt, rcd.amt, 'C');
- field_window(fld,"amount ", 40, 8);
- fld = establish_field(wnd, 15, 8, mskdate, rcd.dt, 'D');
- field_help(fld, help_date);
- clear_template(wnd);
- data_entry(wnd);
- delete_window(wnd);
- }
- /*--------»α«óÑα¬á ß«ßΓ«∩¡¿∩ ¡áªáΓ«⌐ ¬½áó¿Φ¿----------*/
- int validate_state(bf, key)
- char *bf;
-
- - 33 -
- {
- static char *states [] =
- {" ","VA","NC","SC","GA","FL",0};
- char **st = states;
-
- while (*st)
- if (strcmp(*st++, bf) == 0)
- return OK;
- error_message("ìÑñ«»πßΓ¿¼«Ñ ß«ßΓ«∩¡¿Ñ ");
- return ERROR;
- }
-
-
- /*-------óδñáÑΓ ßÑú«ñ¡∩Φ¡εε ñáΓπ------*/
- void help_date(bf)
- char *bf;
- {
- struct date dat;
-
- getdate(&dat);
- sprintf(bf, "%02d%02d%02d",
- dat.da_day, dat.da_mon, dat.da_year % 100);
- }
-
-
-
-
- ï¿ßΓ¿¡ú 8.4: order.prj
-
- order
- ordent (twindow.h)
- entry (twindow.h, keys.h)
- thelp (twindow.h, keys.h)
- twindow (twindow.h, keys.h)
- ibmpc.obj
-
-
-
- - 34 -
-
-
- ÉѺε¼Ñ
- -----------------------------------------------------------------
-
- Ĭ«¡¡á∩ í¿í½¿«ΓѬá ß«ñÑαª¿Γ ßÑ⌐τáß ßαÑñßΓóá ß«ºñá¡¿∩
- ¬«¡ΓѬßΓ¡«-ºáó¿ß¿¼«⌐ help-¿¡Σ«α¼áµ¿¿ ¿ Σ«α¼áΓ¡«ú« óó«ñá ñá¡¡δσ.
- ¥Γ¿ ßαÑñßΓóá óδ ¼«ªÑΓÑ ß πß»Ñσ«¼ ¿ß»«½∞º«óáΓ∞ »α¿ ß«ºñá¡¿¿ ß¿ßΓѼ
- ¿¡ΓÑαá¬Γ¿ó¡«ú« óó«ñá ñá¡¡δσ. ÿáí½«¡ óó«ñá ñá¡¡δσ »«ññÑনóáÑΓ
- Σ¿¬ß¿α«óá¡¡δÑ Σ«α¼áΓδ óó«ñ¿¼δσ ñá¡¡δσ. é â½áóÑ 9 ó Σπ¡¬µ¿¿
- ΓѬßΓ«ó«ú« αÑñá¬Γ«αá ñ«íáó½Ñ¡δ ¡«óδÑ, «ñ¡á ¿º ¡¿σ - 󫺼«ª¡«ßΓ∞
- ¿ß»«½∞º«óá¡¿∩ «¬¡á ñ½∩ óó«ñá ¿ ¼«ñ¿Σ¿¬áµ¿¿ »α«¿ºó«½∞¡«ú« ΓѬßΓá.
-
-
-
-
-
- âïÇéÇ 9
- -------
-
- Ĭ«¡¡δ⌐ ΓѬßΓ«óδ⌐ αÑñá¬Γ«α
- -----------------------------------------------------------------
-
- é â½áóÑ 8 «íßπªñὫß∞ »α¿¼Ñ¡Ñ¡¿Ñ ó¿ñÑ««¬«¡ ñ½∩
- ¿ß»«½∞º«óá¡¿∩ óó«ñá ñá¡¡δσ ó »«½∩ Σ«α¼«-«α¿Ñ¡Γ¿α«óá¡¡«ú« Φáí½«¡á
- óó«ñá ñá¡¡δσ. àßΓÑßΓóÑ¡¡«, τΓ« ¡Ñ óßÑ »«½∩ ñá¡¡δσ ¿¼ÑεΓ ºáαá¡ÑÑ
- «»αÑñѽѡ¡δ⌐, Σ¿¬ß¿α«óá¡¡δ⌐ Σ«α¼áΓ. î¡«ú¿Ñ »«½∩ ¿ Σá⌐½δ ß«ßΓ«∩Γ
- ¿º ΓѬßΓ«ó ßó«í«ñ¡«⌐, ¡Ñ«»αÑñѽѡ¡«⌐ Σ«α¼δ ¿ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿,
- ¡á»α¿¼Ñα, ß½«óá ó ¬¡¿úÑ ¿½¿ ¬«¼¼Ñ¡Γáα¿¿ ¬ »α«úαá¼¼Ñ. ÆÑ¬ßΓ«óδÑ
- »α«µÑßß«αδ ¿ αÑñá¬Γ«αδ ΓѬßΓ«ó »«ºó«½∩εΓ óá¼ ßΓα«¿Γ∞ ΓѬßΓ«óδÑ
- Σá⌐½δ, ¿ú¡«α¿απ∩ Σ«α¼áΓ ¿ßσ«ñ¡δσ ñá¡¡δσ (ΓѬßΓá), «ñ¡á¬«, Ñß½¿
- óδ ß«ºñáÑΓÑ ñÑ⌐ßΓó¿Γѽ∞¡« ¿¡ΓÑúα¿α«óá¡¡πε ß¿ßΓѼπ , Γ« ñ«ßΓπ»
- ¬ Σπ¡¬µ¿∩¼ óó«ñá ΓѬßΓá ó óáΦπ »α«úαá¼¼π ¿ Ñú« αÑñá¬Γ¿α«óá¡¿Ñ
- ¼«ªÑΓ óá¼ »«¡áñ«í¿Γ∞ß∩ ¡Ñ»«ßαÑñßΓóÑ¡¡« ¿º óáΦÑ⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ.
-
- ¥Γá ú½áóá ∩ó½∩ÑΓß∩ »αÑñóáα¿Γѽ∞¡δ¼ «»¿ß᡿Ѽ «¬«¡¡«ú«
-
- - 35 -
- ΓѬßΓ«ó«ú« αÑñá¬Γ«αá, ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓ ó¿ñÑ««¬¡á ñ½∩ óó«ñá ¿
- ¼«ñ¿Σ¿¬áµ¿¿ ΓѬßΓá Γ«τ¡« ΓᬠªÑ, ¬á¬ í«½∞Φ¿¡ßΓó« »α«úαá¼¼
- αÑñá¬Γ¿α«óá¡¿∩ ΓѬßΓá ¿ ΓѬßΓ«óδσ »α«µÑßß«α«ó. ¥Γá «Γ½¿τ¿Γѽ∞¡á∩
- τÑαΓá «¬«¡¡«ú« αÑñá¬Γ«αá ¿ß»«½∞ºπÑΓß∩ »α¿ ß«ºñá¡¿¿ »α«úαá¼¼¡δσ
- ß¿ßΓѼ, ó ¬«Γ«αδσ ΓαÑíπÑΓß∩ óó«ñ ΓѬßΓá »α«¿ºó«½∞¡«⌐ Σ«α¼δ. Åá¬ÑΓ
- Sidekick ∩ó½∩ÑΓß∩ »α¿¼Ñα«¼ ß¿ßΓѼδ, ó ¬«Γ«α«⌐ ¿¼ÑÑΓß∩ ßσ«ñ¡δ⌐ ß
- αáßß¼áΓα¿óáÑ¼δ¼ ó φΓ«⌐ ú½áóÑ αÑñá¬Γ«α ΓѬßΓ«ó. Åα¿¼Ñα »α«úαá¼¼δ,
- »αÑñßΓáó½Ñ¡¡δ⌐ ó φΓ«⌐ ú½áóÑ, 󻫽¡Ñ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ó
- ¬áτÑßΓóÑ αÑñá¬Γ«αá ΓѬßΓ«ó ó ß¿ßΓѼáσ Γ¿»á Sidekick. Ĭ«¡¡δ⌐
- ΓѬßΓ«óδ⌐ αÑñá¬Γ«α ¼«ªÑΓ Γá¬ªÑ »α¿¼Ñ¡∩Γ∞ß∩ ó ß¿ßΓѼáσ óó«ñá
- ñá¡¡δσ, ¬«úñá ΓαÑíπÑΓß∩ óóÑßΓ¿ ó ¬áτÑßΓóÑ ñá¡¡δσ ΓѬßΓ
- »α«¿ºó«½∞¡«⌐ Σ«α¼δ, ºá¡¿¼áεΘ¿⌐ í«½ÑÑ «ñ¡«⌐ ßΓ᫬¿. Åਪ½áñ¡á∩
- »α«úαá¼¼á Γ¿»á »α«úαá¼¼δ óó«ñá ñá¡¡δσ ó ºáñá¡¡«¼ »«α∩ñ¬Ñ ß
- »«¼«Θ∞ε Φáí½«¡á óó«ñá ñá¡¡δσ ¿º â½áóδ 8 ¼«ªÑΓ »«ΓαÑí«óáΓ∞ óó«ñá
- »«½∩, ß«ñÑαªáΘÑú« «»¿ßáΓѽ∞¡δ⌐ ΓѬßΓ. ¥Γ« ΓαÑí«óá¡¿Ñ ¼«ª¡« ½Ñú¬«
- αÑ὿º«óáΓ∞, »α¿¼Ñ¡∩∩ «¬«¡¡δ⌐ ΓѬßΓ«óδ⌐ αÑñá¬Γ«α. î¡«ú¿Ñ íáºδ
- ñá¡¡δσ «»Ñα¿απεΓ ß ñá¡¡δ¼¿, σáαá¬ΓÑਧπεΘ¿¼¿ß∩ ¡á½¿τ¿Ñ¼
- »«∩ß¡∩εΘÑú« ¿σ ΓѬßΓá, αẽ¿τ¡δσ «»¿ßá¡¿⌐ ¿½¿ «»αÑñѽѡ¡«⌐
- ΓÑନ¡«½«ú¿¿ »αÑñ¼ÑΓ¡«⌐ «í½áßΓ¿. Åα¿ ¿ß»«½∞º«óá¡¿¿ Φáí½«¡«ó óó«ñá
- ñá¡¡δσ »«½∩ ñá¡¡δσ Γᬫú« Γ¿»á ¼«úπΓ ß πß»Ñσ«¼ «íαáíáΓδóáΓ∞ß∩
- «¬«¡¡δ¼ αÑñá¬Γ«α«¼. óδ Γá¬ªÑ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ΓѬßΓ«óδ⌐
- αÑñá¬Γ«α ñ½∩ »«ñú«Γ«ó¬¿ ΓѬßΓ«ó help-«¬«¡ ó óáΦÑ⌐ »α«úαá¼¼Ñ »πΓѼ
- «íαáí«Γ¬¿ Σá⌐½á «»¿ßá¡¿⌐ help-«¬«¡, «»¿ßá¡¡«ú« ó â½áóÑ 7.
-
- ä½∩ ¿ß»«½∞º«óá¡¿∩ ΓѬßΓ«ó«ú« αÑñá¬Γ«αá »α«úαá¼¼á ó¡áτá½Ñ
- πßΓá¡áó½¿óáÑΓ «¬¡«, á ºáΓѼ αѺÑαó¿απÑΓ íπΣÑα, ó ¬«Γ«α«¼ íπñπΓ
- σαá¡¿Γ∞ß∩ ¿ αÑñá¬Γ¿α«óáΓ∞ß∩ ñá¡¡δÑ, óó«ñ¿¼δÑ »«½∞º«óáΓѽѼ.
- ÆÑ¬ßΓ«óδ⌐ íπΣÑα αÑñá¬Γ«αá »αÑñßΓáó½∩ÑΓ ß«í«⌐ ¼áßß¿ó,
- αѺÑαó¿απεΘ¿⌐ »á¼∩Γ∞, ñ«ßΓáΓ«τ¡πε ñ½∩ σαá¡Ñ¡¿∩ Σ¿¬ß¿α«óá¡¡«ú«
- τ¿ß½á ßΓ᫬, ¬áªñá∩ ¿º ¬«Γ«αδσ αáó¡á Φ¿α¿¡Ñ «í½áßΓ¿ «¬¡á,
- «Γó«ñ¿¼«⌐ ñ½∩ óó«ñá ¿ αÑñá¬Γ¿α«óá¡¿∩ ΓѬßΓá. ìá»α¿¼Ñα, Ñß½¿ óδ
- πßΓᡫ󿽿 Φ¿α¿¡π «¬¡á ó 42 ß¿¼ó«½á, Γ« «í½áßΓ∞ ΓѬßΓá íπñÑΓ
- ¿¼ÑΓ∞ Φ¿α¿¡π 40 ß¿¼ó«½«ó (αá¼¬á «¬¡á ºá¡¿¼áÑΓ 2 »«º¿µ¿¿). àß½¿ óδ
- ó φΓ«¼ ß½πτáÑ «Γóѽ¿ »«ñ íπΣÑα 4000 ß¿¼ó«½«ó (ñ½¿¡á ¼áßß¿óá), Γ«
- αÑñá¬Γ«α ß¼«ªÑΓ «íαáíáΓδóáΓ∞ «ñ¡«óαѼѡ¡« Γ«½∞¬« 100 ßΓ᫬
- ΓѬßΓá, Γᬠ¬á¬ íπΣÑα ¼«ªÑΓ ß«ñÑαªáΓ∞ ¡Ñ í«½ÑÑ 100 ßΓ᫬ ΓѬßΓá
- »« 40 ß¿¼ó«½«ó ó ßΓ᫬Ñ. Åα¿ óó«ñÑ »«½∞º«óáΓѽѼ ΓѬßΓá «¡
-
- - 36 -
- ¡á¬á»½¿óáÑΓß∩ ó íπΣÑαÑ íѺ ߻ѵ¿á½∞¡δσ ß¿¼ó«½«ó ¡«ó«⌐ ßΓ᫬¿ (\n)
- ¿ Γáíπ½∩µ¿¿ (\t).
-
- àß½¿ ΓѬßΓ«óδ⌐ íπΣÑα πªÑ ß«ñÑαª¿Γ ΓѬßΓ, ¬«Γ«αδ⌐ íδ½ ºá¡ÑßÑ¡
- ó ¡Ñú« »α¿ »Ñαó«¼ «íαáΘÑ¡¿¿ ¬ αÑñá¬Γ«απ, Γ« φëà ßΓáαδ⌐ ΓѬßΓ
- «Γ«íαáªáÑΓß∩ ¡á φ¬αá¡Ñ ñ¿ß»½Ñ∩ ó ó¿ñÑ ßΓ᫬ Σ¿¬ß¿α«óá¡¡«⌐ ñ½¿¡δ ó
- ß««ΓóÑΓßΓó¿¿ ß «»¿ß᡿Ѽ «¬¡á.
-
-
- 諼á¡ñδ ΓÑßΓ«ó«ú« αÑñá¬Γ«αá
- -----------------------------------------------------------------
-
- ÆÑ¬ßΓ«óδ⌐ αÑñá¬Γ«α ß«ñÑαª¿Γ »«½¡δ⌐ ¡áí«α ¬«¼á¡ñ
- αÑñá¬Γ¿α«óá¡¿∩. 諼á¡ñδ ßóÑñÑ¡δ ó «ñ¿¡ »ÑαÑτÑ¡∞ ¿ ¼«úπΓ íδΓ∞
- «Γ«íαáªÑ¡δ ¡á φ¬αá¡Ñ ñ¿ß»½Ñ∩ ó ó¿ñÑ, »αÑñßΓáó½Ñ¡¡«¼ ¡á α¿ßπ¡¬Ñ
- 9.1. é »α«Φ½«⌐ ú½áóÑ íδ½á αáßß¼«ΓαÑ¡á »α«úαá¼¼á, ¬«Γ«αá∩
- ¿ß»«½∞º«óá½á help-«¬¡« ñ½∩ óδñáτ¿ αẽ¿τ¡«⌐ ¿¡Σ«α¼áµ¿¿. Help-«¬¡«
- «Γ«íαáªáÑΓß∩ »α¿ ¡áªáΓ¿¿ ¬½áó¿Φ¿ <F1>. Æ«τ¡« Γᬫ⌐ ªÑ »α¿Ñ¼
- ¿ß»«½∞ºπÑΓß∩ ñ½∩ «Γ«íαáªÑ¡¿∩ ¡áí«αá ¬«¼á¡ñ αÑñá¬Γ«αá. ü«½∞Φ¿¡ßΓó«
- ¿º ¬«¼á¡ñ αÑñá¬Γ¿α«óá¡¿∩ ºá¬αÑ»½Ñ¡« ºá Σπ¡¬µ¿«¡á½∞¡δ¼¿ ¬½áó¿ΦἿ,
- «ßΓá½∞¡δÑ ¿ß»«½∞ºπεΓ ¬«¼í¿¡áµ¿¿ ¬½áó¿Φ <Ctrl> ¿½¿ <ALT> ß ñαπú¿¼¿
- ¬½áó¿ΦἿ. ì¿ªÑ íπñπΓ αáßß¼«ΓαÑ¡δ óßÑ ¬«¼á¡ñδ «¬«¡¡«ú« ΓѬßΓ«ó«ú«
- αÑñá¬Γ«αá.
-
- ┌───────────────────────────────────────────────────────────────┐
- │┌─────────────────────────────────────────────────────────┐ │
- ││──────Cursor Movement──────────────Page Movement──────── │ │
- ││arrows = move text cursor Ctrl-Home = Beginning of File │ │
- ││Ctrl-T = Top of Window Ctrl-End = End of File │ │
- ││Ctrl-B = Bottom of Window PgUp = Previous Page │ │
- ││Ctrl ->= Next Word PgDn = Next Page │ │
- ││Ctrl <-= Previons Word ├┐ │
- ││Home = Beginning of Line ────────Editor control─────── ││ │
- ││End = End of Line Scroll Lock = No Auto Reform ││ │
- ││ ││ │
- ││ ││ │
- ││───────Block controls───────────────Edit commands─────── ││ │
-
- - 37 -
- ││F4 = Form Paragraph F2 or Esc = Done ││ │
- ││F5 = Mark Block Beginning F3 = Erase File ││ │
- ││F6 = Mark Block End Ins = Togle Insert Mode ││ │
- ││F7 = Move Block Del = Delete Char ││ │
- ││F8 = Copy Block <-- = Rubout ││ │
- ││F9 = Delete Block Ctrl-D = Delete Word ││ │
- ││F10 = Unmark Block Alt-D = Delete Line ├┘ │
- ││ [Help] to return │ │
- │└─────────────────────────────────────────────────────────┘ │
- │ │
- │ │
- │ │
- └───────────────────────────────────────────────────────────────┘
-
- É¿ß. 9.1. 諼á¡ñδ ΓѬßΓ«ó«ú« αÑñá¬Γ«αá
-
-
- ô»αáó½Ñ¡¿Ñ ¬παß«α«¼
- -----------------------------------------------------------------
-
- êß»«½∞ºπ∩ ¬½áó¿Φ¿ π»αáó½Ñ¡¿∩ ¬παß«α«¼, Ñú« ¼«ª¡« »ÑαѼÑΘáΓ∞
- »« óßѼπ φ¬αá¡π. àß½¿ óδ »ÑαѼÑßΓ¿½¿ ¬παß«α ó ¡áτὫ ¿½¿ ó ¬«¡Ñµ
- φ¬αá¡á ¿ »α«ñ«½ªáÑΓÑ ¡áª¿¼áΓ∞ ¬½áó¿Φπ »ÑαѼÑΘÑ¡¿∩ ¬παß«αá óóÑασ
- (¿½¿ 󡿺), Γ« ΓѼ ßá¼δ¼ óδ ¿¡¿µ¿¿απÑΓÑ ß¬α«½½¿¡ú ΓѬßΓá, ¬«Γ«αδ⌐
- íπñÑΓ »α«ñ«½ªáΓ∞ß∩ ñ« ñ«ßΓ¿ªÑ¡¿∩ ¡áτá½á (¬«¡µá) íπΣÑαá ñá¡¡δσ.
-
- - <Ctrl/Æ> ¿ <Ctrl/é> »ÑαѼÑΘáεΓ íπΣÑα ó ¡áτὫ ¿ ¬«¡Ñµ φ¬αá¡á;
-
- - <Ctrl/(¬παß«α ó»αáó«)> »ÑαѼÑΘáÑΓ ¬παß«α ó ¡áτὫ ß½ÑñπεΘÑú«
- ß½«óá ó íπΣÑαÑ σαá¡Ñ¡¿∩ ΓѬßΓá;
-
- - <Ctrl/(¬παß«α ó½Ñó«)> »ÑαѼÑΘáÑΓ ¬παß«α ó ¡áτὫ »αÑñδñπΘÑú«
- ß½«óá ó íπΣÑαÑ σαá¡Ñ¡¿∩ ΓѬßΓá;
-
- - <¬παß«α ó ¡áτὫ φ¬αá¡á> »«º¿µ¿«¡¿απÑΓ ¬παß«α ó ¡áτὫ
- ΓѬπΘÑ⌐ ßΓ᫬¿;
-
-
- - 38 -
- - <èÄì> »«º¿µ¿«¡¿απÑΓ ¬παß«α ó ¬«¡Ñµ ΓѬπΘÑ⌐ ßΓ᫬¿;
-
- - <ÆÇü> »ÑαѼÑΘáÑΓ ¬παß«α ¬ ß½ÑñπεΘÑ⌐ »«º¿µ¿¿ Γáíπ½∩µ¿¿;
-
- - <ÉàâêæÆÉ/ÆÇü> »ÑαѼÑΘáÑΓ ¬παß«α ¬ »αÑñδñπΘÑ⌐ »«º¿µ¿¿
- Γáíπ½∩µ¿¿.
-
-
- Å«ßΓαá¡¿τ¡á∩ αáí«Γá
- -----------------------------------------------------------------
-
- - <æΓαá¡¿µá óóÑασ> ¿ <æΓαá¡¿µá 󡿺> »ÑαѼÑΘáÑΓ ΓѬßΓ ¡á
- ßΓαá¡¿µπ ó»ÑαÑñ ¿½¿ ¡áºáñ;
-
- - <Ctrl/(¬παß«α ó ¡áτὫ φ¬αá¡á)> πßΓá¡áó½¿óáÑΓ ΓѬßΓ ¡á
- »Ñαóπε ßΓαá¡¿µπ, »«º¿µ¿«¡¿απ∩ ¬παß«α ó »Ñαó«⌐ »«º¿µ¿¿
- »Ñαó«⌐ ßΓ᫬¿ ΓѬßΓá;
-
- - <Ctrl/èÄì> πßΓá¡áó½¿óáÑΓ ΓѬßΓ ¡á »«ß½Ññ¡εε ßΓαá¡¿µπ ó
- íπΣÑαÑ ¿ »«º¿µ¿«¡¿απÑΓ ¬παß«α ó »Ñαó«⌐ »«º¿µ¿¿ ßΓ᫬¿,
- ¬«Γ«αá∩ ß½ÑñπÑΓ ºá »«ß½Ññ¡Ñ⌐ ßΓ᫬«⌐ ΓѬßΓá ó íπΣÑαÑ.
-
-
-
- 諼á¡ñδ αáí«Γδ ß í½«¬á¼¿ ΓѬßΓá
- -----------------------------------------------------------------
-
- ÆÑ¬ßΓ«óδ⌐ αÑñá¬Γ«α ¿¼ÑÑΓ ó ßó«Ñ¼ ß«ßΓáóÑ ¬«¼á¡ñδ αáí«Γδ ß
- í½«¬á¼¿ ΓѬßΓá. ¥Γ¿ ¬«¼á¡ñδ »«ºó«½∩εΓ «»Ñα¿α«óáΓ∞ ß í½«¬á¼¿
- ΓѬßΓ«ó, ¬«Γ«αδÑ «»αÑñÑ½Ñ¡δ «úαá¡¿τ¿Γѽ∞¡δ¼¿ ½¿¡¿∩¼¿.
-
- - <F4> Σ«α¼¿απÑΓ »áαáúαáΣ ¿º ΓѬßΓá, »«¼ÑτÑ¡¡«ú« ¬á¬ í½«¬;
-
- - <F5> »«¼ÑτáÑΓ »Ñαóπε ßΓ᫬π í½«¬á. æΓ᫬á ΓѬßΓá, ó
- ¬«Γ«α«⌐ ¡áσ«ñ¿Γß∩ ¬παß«α, ßΓá¡«ó¿Γß∩ »Ñαó«⌐ ßΓ᫬«⌐
- í½«¬á. ÆÑ¬ßΓ, «íαáºπεΘ¿⌐ í½«¬, «Γ«íαáªáÑΓß∩ ó µóÑΓÑ,
- «»αÑñѽ∩Ѽ«¼ º¡áτÑ¡¿Ñ¼ »áαá¼ÑΓαá ACCENT ñ½∩ ñá¡¡«ú«
-
- - 39 -
- «¬¡á;
-
- - <F6> »«¼ÑτáÑΓ »«ß½Ññ¡εε ßΓ᫬π í½«¬á ΓѬßΓá;
-
- - <F7> »ÑαѼÑΘáÑΓ óÑß∞ í½«¬ ΓѬßΓá ¬ ßΓα«¬Ñ ΓѬßΓá, ó
- ¬«Γ«α«⌐ αáß»«½«ªÑ¡ ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ ¬παß«α.
- ÅÑαѼÑΘÑ¡¿Ñ í½«¬á »α«¿ßσ«ñ¿Γ íѺ Ñú« αáºαπΦÑ¡¿∩;
- »α«ßΓαá¡ßΓó« ñ½∩ αẼÑΘÑ¡¿∩ í½«¬á óδñѽ∩ÑΓß∩
- áóΓ«¼áΓ¿τÑ߬¿;
-
- - <F8> ¬«»¿απÑΓ í½«¬ ¬ ΓѬπΘÑ⌐ ßΓα«¬Ñ ΓѬßΓá. ÄΓ½¿τ¿Ñ φΓ«⌐
- ¬«¼á¡ñδ «Γ »αÑñδñπΘÑ⌐ ó Γ«¼, τΓ« ¡áßΓ«∩Θá∩ ¬«¼á¡ñá ¡Ñ
- »α¿ó«ñ¿Γ ¬ αáºαπΦÑ¡¿ε í½«¬á-«α¿ú¿¡á½á ¡á Ñú« »αѪ¡Ñ¼
- ¼ÑßΓ«αáß»«½«ªÑ¡¿¿ ó ΓѬßΓÑ.
-
- - <F9> π¡¿τΓ«ªáÑΓ í½«¬. æΓ᫬¿ ΓѬßΓá, ß½ÑñπεΘ¿Ñ ºá
- πñá½Ñ¡¡δ¼ í½«¬«¼, »ÑαѼÑΘáεΓß∩ óóÑασ, ºá»«½¡∩∩
- «ßó«í«ñ¿óΦÑÑß∩ »α«ßΓαá¡ßΓó« ó ΓѬßΓÑ;
-
- - <F10> «Γ¼Ñ¡∩ÑΓ ¼áનα«ó¬π Σαáú¼Ñ¡Γá ΓѬßΓá ¬á¬ í½«¬á.
-
-
-
- 諼á¡ñδ αÑñá¬Γ¿α«óá¡¿∩
- -----------------------------------------------------------------
-
- Å«ß½Ñ Γ«ú«, ¬á¬ óδ óóѽ¿ ΓѬßΓ ¿ «ßπΘÑßΓ󿽿 »ÑαѼÑΘÑ¡¿Ñ
- ¬παß«αá, αÑñá¬Γ«α áóΓ«¼áΓ¿τÑ߬¿ »ÑαÑΣ«α¼áΓ¿απÑΓ ΓѬπΘ¿⌐ »áαáúαáΣ.
- ÉÑñá¬Γ«α «»αÑñѽ∩ÑΓ »áαáúαáΣ ¬á¬ úαπ»»π ßΓ᫬ ΓѬßΓá,
- ¡áτ¿¡áεΘπεß∩ ß »Ñαó«⌐ ßΓ᫬¿, ß«ßΓ«∩ΘÑ⌐ ¿º »α«íѽ«ó.
- ÅÑαÑΣ«α¼áΓ¿α«óá¡¿Ñ »áαáúαáΣ«ó ¼«ªÑΓ »«ñáó½∩Γ∞ß∩ »πΓѼ ¡áªáΓ¿∩
- »ÑαÑτ¿ß½Ñ¡¡δσ ¡¿ªÑ ¬½áó¿Φ ó αѪ¿¼Ñ (Scroll Lock):
-
- - <F3> π¡¿τΓ«ªáÑΓ óÑß∞ ΓѬßΓ, σαá¡∩Θ¿⌐ß∩ ó íπΣÑαÑ "諼á¡ñá".
- 諼á¡ñá ΓαÑíπÑΓ »«ñΓóÑαªñÑ¡¿∩;
-
- - <INS> »ÑαѬ½ετáÑΓ αѪ¿¼δ αáí«Γδ αÑñá¬Γ«αá éßΓáó¬á/çá¼Ñ¡á,
-
- - 40 -
- á Γá¬ªÑ ¿º¼Ñ¡∩ÑΓ Σ«α¼π ¬παß«αá, ¿¡ñ¿µ¿απεΘÑú« αѪ¿¼
- αáí«Γδ αÑñá¬Γ«α;
-
- - <DEL> π¡¿τΓ«ªáÑΓ ß¿¼ó«½, ¡áσ«ñ∩Θ¿⌐ß∩ »«ß½Ñ ¬παß«αá ó
- ΓѬßΓÑ, »ÑαѼÑΘá∩ óÑß∞ ΓѬßΓ ó ßΓα«¬Ñ ¡á «ñ¡π »«º¿µ¿ε
- ó½Ñó«;
-
- - çáí«⌐ <Backspace> (ñ½¿¡¡á∩ ßΓαѽ¬á ó »αáó«¼ óÑασ¡Ñ¼ πú½π
- ¬½áó¿áΓπαδ) π¡¿τΓ«ªáÑΓ ß¿¼ó«½, ¡áσ«ñ∩Θ¿⌐ß∩ ½ÑóÑÑ
- ¬παß«αá, »ÑαѼÑΘá∩ ßá¼ ¬παß«α ¿ óÑß∞ ß½ÑñπεΘ¿⌐ ºá ¡¿¼
- ΓѬßΓ ßΓ᫬¿ ¡á «ñ¡π »«º¿µ¿ε ó½Ñó«;
-
- - <Ctrl/D> (<CTRL/D>) π¡¿τΓ«ªáÑΓ ß½«ó«, »ÑαÑñ ¬«Γ«αδ¼
- »«º¿µ¿α«óá¡ ¬παß«α;
-
- - <ALT/D> π¡¿τΓ«ªáÑΓ ßΓ᫬π ΓѬßΓá, ó ¬«Γ«α«⌐ íδ½
- »αÑñóáα¿Γѽ∞¡« »«º¿µ¿α«óá¡ ¬παß«α;
-
- - <F2> ¿½¿ <ESC> »α¿ó«ñ¿Γ ¬ óδσ«ñπ ¿º ΓѬßΓ«ó«ú« αÑñá¬Γ«αá ó
- Γ«τ¬π Ñú« ó맮óá ¿º ú½áó¡«⌐ »α«úαá¼¼δ.
-
-
-
- öπ¡¬µ¿∩, αÑ὿ºπεΘá∩ ΓѬßΓ«óδ⌐ αÑñá¬Γ«α
- -----------------------------------------------------------------
-
- ÆÑ¬ßΓ«óδ⌐ αÑñá¬Γ«α αÑ὿º«óá¡ ó ó¿ñÑ «Γñѽ∞¡«⌐ Σπ¡¬µ¿¿,
- ¬«Γ«απε ¼«ªÑΓ óδºóáΓ∞ óáΦá »α«úαá¼¼á. ä½∩ ¿ß»«½∞º«óá¡¿∩ φΓ«⌐
- Σπ¡¬µ¿¿ óδ ñ«½ª¡δ ó¡áτá½Ñ «αúá¡¿º«óáΓ∞ «¬¡«, ó ¬«Γ«α«Ñ íπñπΓ
- óó«ñ¿Γ∞ß∩ ¿ ó ¬«Γ«α«¼ íπñπΓ «íαáíáΓδóáΓ∞ß∩ ΓѬßΓ«óδÑ ñá¡¡δÑ.
-
- void text_editor (WINDOW *wnd, char *bf, unsigned bsize)
-
- ¥Γá Σπ¡¬µ¿∩ «íαáíáΓδóáÑΓ ΓѬßΓ«óδÑ ñá¡¡δÑ, óó«ñ¿¼δÑ ó «¬¡« ß
- »«¼«Θ∞ε ΓѬßΓ«ó«ú« αÑñá¬Γ«αá. ô¬áºáΓѽ∞ wnd ߻ѵ¿Σ¿µ¿απÑΓ
- »αÑñóáα¿Γѽ∞¡« πßΓá¡«ó½Ñ¡¡«Ñ óἿ «¬¡«. ô¬áºáΓѽ∞ bf «»αÑñѽ∩ÑΓ
- ΓѬßΓ«óδ⌐ íπΣÑα, á µÑ½«Ñ τ¿ß½« bsize ߻ѵ¿Σ¿µ¿απÑΓ αẼÑα íπΣÑαá.
-
- - 41 -
- 諽¿τÑßΓó« ßΓ᫬ ó íπΣÑαÑ ∩ó½∩ÑΓß∩ Σπ¡¬µ¿Ñ⌐, ºáó¿ß∩ΘÑ⌐ «Γ αẼÑαá
- íπΣÑαá ¿ αẼÑα«ó (Φ¿α¿¡δ) «¬¡á, ¬«Γ«αδÑ πßΓá¡áó½¿óáεΓß∩, ¬«úñá
- óδ «αúá¡¿ºπÑΓÑ «¬¡«.
-
- Åα¿ ó맮óÑ Σπ¡¬µ¿¿ «¡á «Γ«íαáªáÑΓ ΓѬßΓ, ¡áτ¿¡á∩ ß »Ñαó«⌐
- ßΓαá¡¿µδ ¿º ΓѬßΓ«ó«ú« íπΣÑαá, ¿ »«ºó«½∩ÑΓ ¬á¬ óó«ñ ΓѬßΓ«óδσ
- ñá¡¡δσ, Γᬠ¿ óó«ñ ¬«¼á¡ñ αÑñá¬Γ¿α«óá¡¿∩ ¿ «íαáí«Γ¬¿ ΓѬßΓá ß
- ¬½áó¿áΓπαδ. Åα¿ óδσ«ñÑ ¿º ΓѬßΓ«ó«ú« αÑñá¬Γ«αá íπΣÑα ß«ñÑনΓ
- óóÑñÑ¡¡δ⌐ ¿½¿ ¼«ñ¿Σ¿µ¿α«óá¡¡δ⌐ »«½∞º«óáΓѽѼ ΓѬßΓ.
-
-
- êßσ«ñ¡δ⌐ ½¿ßΓ¿¡ú: editor.c
- -----------------------------------------------------------------
-
- ï¿ßΓ¿¡ú 9.1 ß«ñÑαª¿Γ ¿ßσ«ñ¡δ⌐ ΓѬßΓ «¬«¡¡«ú« ΓѬßΓ«ó«ú«
- αÑñá¬Γ«αá.
-
- ï¿ßΓ¿¡ú 9.1: editor.c
-
- /* ------------------------- editor.c ------------------------ */
-
- #include <stdio.h>
- #include <ctype.h>
- #include <mem.h>
- #include <conio.h>
- #include <alloc.h>
- #include "twindow.h"
- #include "keys.h"
-
- #define TRUE 1
- #define FALSE 0
- #define TAB 4
- #define NEXTTAB (TAB-(x%TAB))
- #define LASTTAB (((wwd-1)/TAB)*TAB)
- #define PREVTAB (((x-1)%TAB)+1)
- #define curr(x,y) (bfptr+(y)*wwd+(x))
- #define lineno(y) ((int)(bfptr-topptr)/wwd+(y))
-
- - 42 -
-
- extern int VSG;
- int last_x, last_y;
- static int wht;
- static int wwd;
- static int wsz;
- static char *topptr;
- static char *bfptr;
- static char *lstptr;
- static int lines;
- static char *endptr;
- static int blkbeg;
- static int blkend;
- static int inserting;
- static WINDOW *wnd;
- static int do_display_text =1;
-
- /* ---------- local function prototypes ----------- */
- void erase_buffer(int *x, int*y);
- int lastword(int x, int y);
- void last_char(int *x, int *y);
- void test_para(int x, int y);
- int traling_spaces(int);
- int first_wordlen(int y);
- void paraform(int x, int y);
- int blankline(int line);
- void delete_word(int x, int y);
- void delete_line(int y);
- void delete_block(void);
- void copy_block(int y);
- void move_block(int y);
- void mvblock(int y, int moving);
- void findlast(void);
- void find_end(int *x, int *y);
- void carrtn(int *x, int *y, int insert);
- void backspace(int *x, int *y);
- void fore_word(int *x, int *y, char *bf);
-
- - 43 -
- int spaceup(int *x, int *y, char **bf);
- void back_word(int *x, int *y, char *bf);
- int spacedn(int *x, int *y, char **bf);
- void forward(int *x, int *y);
- int downward(int *y);
- void upward(int *y);
- void display_text(void);
- void disp_line(int y);
- void insert_line(void);
-
- /* ----- Process text entry for a window. ----- */
- void text_editor(WINDOW *wnd1, char *bf, unsigned bsize)
- {
- char *b, *buff;
- int depart = FALSE, i, c;
- int x, y, svx, svlw, tx, tabctr = 0;
-
- wnd = wnd1;
- wht = HEIGHT-2;
- wwd = WIDTH-2;
- topptr = bfptr = bf;
- lines = bsize / wwd;
- endptr = bf + wwd * lines;
- blkbeg = 0;
- blkend = 0;
- inserting = FALSE;
- x = 0;
- y = 0;
- display_text();
- /* --------- read in text from the keyboard ---------- */
- findlast();
- while (TRUE) {
- last_x = COL + 1 + x;
- last_y = ROW + 1 + y;
- cursor(last_x, last_y);
- buff = curr(x, y);
- if (tabctr) {
-
- - 44 -
- --tabctr;
- c = ' ';
- }
- else {
- c = get_char();
- clear_message();
- }
- switch (c) {
- case '\r': carrtn(&x, &y, inserting);
- break;
- case DN: downward(&y);
- break;
- case PGUP: y = 0;
- for (i = 0; i < wht; i++)
- upward(&y);
- break;
- case PGDN: y = HEIGHT - 2;
- for (i = 0; i < wht; i++)
- downward(&y);
- y = 0;
- break;
- case '\t': if (x + NEXTTAB < wwd) {
- if (inserting)
- tabctr = NEXTTAB;
- else
- x += NEXTTAB;
- }
- else
- carrtn(&x, &y, inserting);
- break;
- case SHIFT_HT:
- if (x < TAB ) {
- upward(&y);
- x = LASTTAB;
- }
- else
- x -= PREVTAB;
-
- - 45 -
- break;
-
- case CTRL_FWD:
- fore_word(&x, &y, buff);
- break;
- case CTRL_BS:
- back_word(&x, &y, buff);
- break;
- case CTRL_B:
- y = wht - 1;
- break;
- case CTRL_T:
- y = 0;
- break;
- case CTRL_HOME:
- x = y = 0;
- bfptr = topptr;
- display_text();
- break;
- case HOME: x = 0;
- break;
- case CTRL_END:
- find_end(&x, &y);
- display_text();
- break;
- case END: last_char(&x, &y);
- break;
-
- case UP: upward(&y);
- break;
-
-
- case F2:
- case ESC: depart = TRUE;
- break;
- case '\b':
- case BS: if (curr(x, y) == topptr)
-
- - 46 -
- break;
- backspace(&x, &y);
- if (x == wwd - 1)
- last_char(&x, &y);
- if (c == BS)
- break;
- buff = curr(x, y);
- case DEL: movmem(buff+1, buff, wwd-1-x);
- *(buff+wwd-1-x) = ' ';
- disp_line(y);
- test_para(x+1, y);
- break;
- case ALT_D: delete_line(y);
- break;
- case INS: inserting ^= TRUE;
- insert_line();
- break;
- case F3: erase_buffer(&x, &y);
- break;
- case F4: paraform(0, y);
- break;
- case F5: blkbeg = lineno(y) + 1;
- if (blkbeg > blkend)
- blkend = lines;
- display_text();
- break;
- case F6: blkbeg = lineno(y) + 1;
- if (blkbeg < blkend)
- blkend = 1;
- display_text();
- break;
- case F7: move_block(y);
- break;
- case F8: copy_block(y);
- break;
- case F9: delete_block();
- break;
-
- - 47 -
- case F10: blkbeg = blkend = 0;
- display_text();
- break;
- case FWD: forward(&x, &y);
- break;
- default: if (!isprint(c))
- break;
- if (curr(x, y) == endptr-1 ||
- (lineno(y)+1 >= lines && inserting
- && *curr(wwd-2, y) != ' ')) {
- error_message(" End of Buffer ");
- break;
- }
- if (inserting) {
- buff = curr(x, y);
- movmem(buff, buff + 1, wwd-1-x);
- }
- buff = curr(x, y);
- if (buff < endptr) {
- if (buff >= lstptr)
- lstptr = buff + 1;
- *buff = c;
- disp_line(y);
- }
- buff = curr(wwd-1, y);
- if (endptr && *buff != ' ') {
- for (b = buff+1; b < endptr; b++)
- if (*b==' ' && *(b + 1)==' ')
- break;
- movmem(buff+1, buff+2, b-buff-1);
- *(buff+1) = ' ';
- svx = x;
- svlw = lastword(x, y);
- x = wwd-1;
- if (*(buff-1) != ' ')
- back_word(&x, &y, buff);
- tx = x;
-
- - 48 -
- carrtn(&x, &y, TRUE);
- if (svlw)
- x = svx-tx;
- else {
- x = svx;
- --y;
- }
- }
- forward(&x, &y);
- break;
- }
- if (depart)
- break;
- }
- inserting = FALSE;
- insert_line();
- }
-
- /* -------- erase the buffer ---------------- */
- static void erase_buffer(int *x, int *y)
- {
- int c = 0;
- WINDOW *sur;
-
- sur = establish_window(28, 11, 4, 24);
- set_colors(sur, ALL, RED, YELLOW, BRIGHT);
- display_window(sur);
- wprintf(sur, " Erase text window\n Are you sure? (y/n)");
- while (c != 'y' && c != 'n') {
- c = get_char();
- c = tolower(c);
- if (c == 'y') {
- lstptr = bfptr =topptr;
- *x = *y = 0;
- setmem(bfptr, lines * wwd, ' ');
- blkbeg = blkend = 0;
- display_text();
-
- - 49 -
- }
- }
- delete_window(sur);
- }
- /* ----- see if a word is the last word on the line ------ */
- static int lastword(int x, int y)
- {
- char *bf = curr(x, y);
-
- while (x++ < wwd-1)
- if (*bf++ == ' ')
- return 0;
- return 1;
-
- }
- /* str 188 */
- /* --- go to last displayable character on the line --- */
- static void last_char(int *x, int *y)
- {
- char *bf;
-
- *x = wwd-1;
- bf = curr(0, *y);
- while(*x && *(bf + *x) == ' ')
- --(*x);
- if (*x && *x < wwd-1)
- (*x)++;
- }
-
- /* ----- test to see if paragraph should be reformed ----- */
- static void test_para(int x, int y)
- {
- int ts, fw;
-
- if(!scroll_lock() && y < lines) {
- ts= trailing_spaces(y);
- fw = fierst_wordlen(y+1);
-
- - 50 -
- if (fw && ts > fw)
- paraform(x, y);
- }
- }
-
- /* ---- count the trailing spaces on a line ----- */
- static int trailing_spaces(int y)
- {
- int x = wwd-1 ,ct = 0;
- char *bf=curr(0, y);
-
- while (x >= 0) {
- if (*(bf + x) != ' ')
- break;
- --x;
- ct++;
- }
- return ct;
- }
-
- /* ----- count the length of the first word on a line --- */
- static int fiest_wordlen(int y)
- {
- int ct = 0, x = 0;
- char *bf = curr(0, y);
-
- while (x < wwd-1 && *(bf+x) == ' ')
- x++;
- while (x+ct < wwd-1 && *(bf+x+ct) == ' ')
- ct++;
- return ct;
- }
-
- /*----------------- form a paragraph -------------------- */
- static void paraform(int x, int y)
- {
- char *cp1, *cp2, *cpend, *svcp;
-
- - 51 -
- int x1;
-
- if (blankline(lineno(y)+1))
- return;
- if (!blkbeg) {
- blkbeg = blkend = lineno(y)+1;
- blkend++;
- while(blkend < lines) {
- if (blankline(blkend))
- break;
- blkend++;
- }
- --blkend;
- }
- if(lineno(y) != blkend-1 )
- x=0;
- x1=x;
- cp1=cp2=topptr + (blkend-1) * wwd + x;
- cpend = topptr + blkend * wwd;
- while(cp2 < cpend){
- while(*cp2 == ' ' && cp2 < cpend)
- cp2++;
-
- if(cp2 == cpend)
- break;
- /* at a word */
- while(*cp2 != ' ' && cp2 < cpend) {
- if(x1 >= wwd-1) {
- /* wrap the word */
- svcp = cp1 + (wwd - 1);
- while(*--cp1 != ' ') {
- *cp1 = ' ';
- --cp2;
- }
- x1 = 0;
- blkbeg++;
- cp1 = svcp;
-
- - 52 -
- }
- *cp1++ = *cp2++;
- x1++;
- }
- if(cp2 < cpend) {
- *cp1++ = ' ';
- x1++;
- }
- }
- while(cp1 < cpend)
- *cp1++ = ' ';
- blkbeg++;
- if(blkbeg <= blkend)
- delete_block();
- blkbeg =blkend =0;
- display_text();
- findlast();
- }
-