EPOC   SDK Home Glossary   Previous Next Up

Files — Data files

The following module works on a data file called DATA, containing names, addresses, post codes and telephone numbers. It assumes this file has already been created with a statement like this:

    CREATE "DATA",A,nm$,ad1$,ad2$,ad3$,ad4$,tel$

To use a database created with the Data application, see Database manipulation.

The first procedure is the controlling, calling procedure, offering you choices. The next two let you add or edit records.

    PROC files:
          GLOBAL nm$(255),ad1$(255),ad2$(255)
          GLOBAL ad3$(255),ad4$(255),tel$(255),title$(30)
          LOCAL g%
          OPEN "DATA",A,nm$,ad1$,ad2$,ad3$,ad4$,tel$
          DO
                CLS
                dINIT "Select action"
                dTEXT "Add new record","",$402
                dTEXT "Find and edit a record","",$402
                g%=DIALOG
                IF g%=2
                      add:
                ELSEIF g%=3 
                      edit:
                ENDIF
          UNTIL g%=0
          CLOSE
    ENDP
    
    PROC add:
          nm$="" :ad1$="" :ad2$=""
          ad3$="" :ad4$="" :tel$=""
          title$="Enter a new record"
          IF showd%:
                APPEND
          ENDIF
    ENDP
    
    PROC edit:
          LOCAL search$(30),p%
          dINIT "Find and edit a record"
          dEDIT search$,"Search string",15
          IF DIALOG
                FIRST
                IF FIND("*"+search$+"*")=0
                      ALERT("No matching records")
                      RETURN
                ENDIF
                DO
                      nm$=A.nm$ :ad1$=A.ad1$ :ad2$=A.ad2$
                      ad3$=A.ad3$ :ad4$=A.ad4$ :tel$=A.tel$
                      title$="Edit matching record"
                      IF showd%:
                            UPDATE :BREAK
                      ELSE
                            NEXT
                      ENDIF
                      FIND("*"+search$+"*")
                      IF EOF
                            ALERT("No more matching records")
                            BREAK
                      ENDIF
                UNTIL 0
          ENDIF
    ENDP 
    
    PROC showd%:
          LOCAL ret%
          dINIT title$
          dEDIT nm$,"Name",25
          dEDIT ad1$,"Street",25
          dEDIT ad2$,"Town",25
          dEDIT ad3$,"County",25
          dEDIT ad4$,"Postcode",25
          dEDIT tel$,"Phone",25
          ret%=DIALOG
          IF ret%
                A.nm$=nm$ :A.ad1$=ad1$ :A.ad2$=ad2$
                A.ad3$=ad3$ :A.ad4$=ad4$ :A.tel$=tel$
          ENDIF
          RETURN ret%
    ENDP
EPOC       SDK Home Glossary   Previous Next Up