
Hi guys - flat file database been working on with a programming buddy
We first released a pre version of this two years ago . . .
- Shadow is back at work, so might have to wait a couple of years for next update
- anyway here is flat file bash script - you can change labels
and sort by clicking on headers - nothing more at this stage
:)
#! /usr/sbin/gtkdialog3 -e
Content='
<window title="P-Data">
<vbox>
<pixmap><input file="">/root/puppy-reference/midi-icons/puppy-bone48.gif</pixmap>
<notebook labels="Input|Data|Labels|Help">
<vbox>
&fields&
<hbox>
<button tooltip-text="Click to clear all the entries above">
<label>Clear Entries</label>&clear&
</button>
</hbox>
</vbox>
<vbox>
<tree>
&data&
</tree>
</vbox>
<vbox>
&labels&
<vbox>
<text><label>----</label></text>
<text><label>Add new label</label></text>
<entry><variable>NewLabel</variable></entry>
</vbox>
</vbox>
<vbox>
<text><label>----</label></text>
<text><label>P-Data is a front end, creating a Pipe Delimited text file</label></text>
<text><label>Shadow & Lobster, Nov 2011</label></text>
</vbox>
</notebook>
<hbox>
<button tooltip-text="Click to save all changes">
<label>Save</label>
<action>savedata</action>
<action type="exit">xxxx</action>
</button>
<button tooltip-text="Click to close without saving"><label>Close</label></button>
</hbox>
</vbox>
</window>
'
function savedata()
{
OutData=""
for (( i = 1 ; i < $NumberOfFields+1 ; i++ ))
do
x="Field$i"
eval dn="$"$x
OutData="$OutData|$dn"
done
if [ "${OutData//|/}" != "" ]; then
echo "$OutData" >> data.txt
fi
rm labels.txt
for (( i = 1 ; i < $NumberOfFields+1 ; i++ ))
do
x="Label$i"
eval dn="$"$x
echo "$dn" >> labels.txt
done
if [ "$NewLabel" != "" ]; then
echo "$NewLabel" >> labels.txt
fi
}
function defaultnames() {
FieldName[1]="First Name"
FieldName[2]="Second Name"
FieldName[3]="Address1"
FieldName[4]="Address2"
FieldName[5]="Address3"
FieldName[6]="Address4"
FieldName[7]="Tel"
FieldName[8]="Email"
FieldName[9]="Web"
}
i=0
while read line;
do
i=$[i+1]
FieldName[i]="$line"
done < 'labels.txt'
if [ $i == 0 ]; then
defaultnames
fi
NumberOfFields=${#FieldName[@]}
FieldNames=""
Fields=""
Labels=""
Clear=""
ClearType='type="clear"'
for (( i = 1 ; i < $NumberOfFields+1 ; i++ ))
do
FieldNames="$FieldNames|${FieldName[$i]}"
Fields="$Fields<hbox><text><label>${FieldName[$i]}</label></text><entry><variable>Field$i</variable></entry></hbox>"
Labels="$Labels<hbox><entry><default>${FieldName[i]}</default><variable>Label$i</variable></entry></hbox>"
Clear="$Clear<action $cleartype="">Field$i</action>"
done
Data=""
while read line;
do
Data="$Data<item>$line</item>"
done < 'data.txt'
Data="<label>$FieldNames</label>$Data<variable>SelectedRow</variable>"
Content="${Content/&fields&/$Fields}"
Content="${Content/&labels&/$Labels}"
Content="${Content/&data&/$Data}"
Content="${Content/&clear&/$Clear}"
export MAIN_DIALOG=$Content