Este es un ejemplo muy muy elemental, que no usa las capacidades de base de datos reales mysql, sqlite, dbase de Autoit. Es un ejemplo de acceso a ficheros ascii a pelo. Usando mysql, en cambio, es mucho más facil.
Esto es un programita básico para gestionar una tabla de datos con 3 campos, en este caso son url, descripción y palabras clave de búsqueda relacionadas.
También vale para cualquier otro tema como puede ser catalogar cds, articulos, agenda de telefonos y cualquier dato.
No es de Botones, sino a traves de un menú con preguntas
Se almacenan en formato Ini y exporta en Html.
Programa sencillito que crea un fichero de texto.
; Author: Basicos de http://www.autoit.es , 25/11/05
; ----------------------------------------------------------------------------
$IniFile = @ScriptDir & "\gesdata.txt"
Global $Command
ConfigWebsiteDB ()
Func ConfigWebsiteDB ()
$Command = InputBox("Base de Datos http://www.autoit.es", "Entre un comando..." & @CRLF & @CRLF & _
"Comandos disponibles:" & @CRLF & @CRLF & "Pon Cat" & @TAB & @TAB & "Añade una categoria" & @CRLF & _
"Pon Apunte" & @TAB & "Añade un elemento a una categoria." & @CRLF & _
"Quita Cat" & @TAB & @TAB & "Borra una categoría." & @CRLF & _
"Quita Apunte" & @TAB & "Borra un elemento de una categoría concreta." & @CRLF & _
"Edit Cat" & @TAB & @TAB & "Edita Elementos en cierta categoria." & @CRLF & _
"Exporta Todo" & @TAB & "Exporta todas las categorias incluye todos elem." & @CRLF & _
"Exporta Cat" & @TAB & "Exporta una categoria incluye todos elem." & @CRLF & _
"Rename Cat" & @TAB & "Renombra una categoria." & @CRLF & _
"Buscar" & @TAB & @TAB & "Buscar en la base datos cierta palabra." & @CRLF & _
"Mostrar Cats" & @TAB & "Muestra todas las categorias" & @CRLF & _
"Mostrar Apuntes" & @TAB & "Muestra todos los elementos en una cierta categoria.", "", "" _
, 400, 350)
$Command = StringLower($Command)
$CountCats = CountCats ()
If $CountCats <> 0 Then
$List = ListCats ()
$Category = IniRead($IniFile, "Settings", "Categories", "")
$Category = StringSplit($Category, "|")
$Error = "No"
Else
$Error = "Yes"
EndIf
Select
Case $Command = "Pon Cat"
AddCat ()
Case $Command = "Pon Apunte"
If $Error = "Yes" Then
NoCats ()
Return
EndIf
$WhichCat = InputBox("Pon Apunte", "¿A que categoría quiere añadir una elemento?" & _
@CRLF & @CRLF & $List, "", "", 400, 350)
If $WhichCat = "" Then Return
$Category = $Category[$WhichCat]
AddItem ($Category)
Case $Command = "Mostrar Apuntes"
If $Error = "Yes" Then
NoCats ()
Return
EndIf
$WhichCat = InputBox("Mostrar Apuntes", "¿De que categoría quiere ver los elementos?" & _
@CRLF & @CRLF & $List, "", "", 400, 350)
$Category = $Category[$WhichCat]
ShowItems ($Category)
Case $Command = "Mostrar Cats"
If $Error = "Yes" Then
NoCats ()
Return
EndIf
MsgBox(0, "Muestra Categorias", "Categorias actuales: " & @CRLF & ListCats ())
Case $Command = "Exporta Todo"
If $Error = "Yes" Then
NoCats ()
Return
Else
ExportAll ()
EndIf
Case $Command = "Edit Cat"
If $Error = "Yes" Then
NoCats ()
Return
EndIf
$WhichCat = InputBox("Edita Category", "¿Que categoría quiere modificar?" & _
@CRLF & @CRLF & $List, "", "", 400, 350)
If $WhichCat = "" Then Return
$Category = $Category[$WhichCat]
EditCat ($Category)
Case $Command = "Rename Cat"
If $Error = "Yes" Then
NoCats ()
Return
EndIf
$WhichCat = InputBox("Renombra Categoría", "¿Que categoria le gustaría renombrar?" & _
@CRLF & @CRLF & $List, "", "", 400, 350)
If $WhichCat = "" Then Return
$Category = $Category[$WhichCat]
RenCat ($Category, $WhichCat)
Case $Command = "Buscar"
If $Error = "Yes" Then
NoCats ()
Return
EndIf
$SearchWord = InputBox("Buscar", "Entre una palabra por la cual buscar.")
If $SearchWord <Then>ConfigWebsiteDB
While $Command </TITLE>ExportCat
Func ExportAll ()
$Category = IniRead($IniFile, "Settings", "Categories", "0")
$Category = StringSplit($Category, "|")
$CountCats = $Category[0]
$WritePage = FileOpen(@ScriptDir & "\WebsiteDB.htm", 2)
FileWriteLine($WritePage, "<HTML>")
FileWriteLine($WritePage, "<HEAD>")
FileWriteLine($WritePage, '<base>')
FileWriteLine($WritePage, "<TITLE>Website Database</TITLE>")
FileWriteLine($WritePage, "<STYLE>")
FileWriteLine($WritePage, 'Body { font-family: Tahoma, Arial; text-decoration: none; font-size: 12pt; }')
FileWriteLine($WritePage, 'a { text-decoration: none; font-size: 11pt; }')
FileWriteLine($WritePage, 'a:link { text-decoration: none; font-size: 11pt; }')
FileWriteLine($WritePage, 'a:active { text-decoration: none; font-size: 11pt; }')
FileWriteLine($WritePage, 'a:hover { text-decoration: underline; font-size: 11pt; }')
FileWriteLine($WritePage, "</STYLE>")
FileWriteLine($WritePage, "</HEAD>")
FileWriteLine($WritePage, '<BODY>')
FileWriteLine($WritePage, '<BR>')
FileWriteLine($WritePage, '<ul>')
For $c = 1 To $CountCats
$CheckCat = $Category[$c]
$CountItems = IniRead($IniFile, $CheckCat, "Count", "0")
$CountItems = Number($CountItems)
FileWriteLine($WritePage, '<li>' & $CheckCat & '</li>')
FileWriteLine($WritePage, '<ul>')
For $i = 1 To $CountItems
$CheckItem = IniRead($IniFile, $CheckCat, "Item" & $i, "0")
$Item = StringSplit($CheckItem, "|")
FileWriteLine($WritePage, '<li><A>' & $Item[2] & $Item[3] & '</A></li>')
Next
FileWriteLine($WritePage, '</ul><BR>')
Next
FileWriteLine($WritePage, '</ul>')
FileWriteLine($WritePage, '</BODY>')
FileWriteLine($WritePage, '</HTML>')
FileClose($WritePage)
Run(@ProgramFilesDir & '\Internet Explorer\iexplore.exe ' & @ScriptDir & '\WebSiteDB.htm', '', @SW_MAXIMIZE)
Exit
EndFunc;==>ExportAll
Func Buscar ($SearchWord)
$Category = IniRead($IniFile, "Settings", "Categories", "0")
$Category = StringSplit($Category, "|")
$CountCats = $Category[0]
$Found = 0
For $c = 1 To $CountCats
$CheckCat = $Category[$c]
$CountItems = IniRead($IniFile, $CheckCat, "Count", "0")
For $i = 1 To $CountItems
$CheckItem = IniRead($IniFile, $CheckCat, "Item" & $i, "0")
$Match = StringInStr($CheckItem, $SearchWord)
If Not $Match = 0 Then
$Item = StringSplit($CheckItem, "|")
MsgBox(0, "Category: " & Chr(34) & $CheckCat & Chr(34), "Url:" & @CRLF & $Item[1] & _
@CRLF & @CRLF & "Description:" & @CRLF & $Item[2] & _
@CRLF & @CRLF & "Keywords:" & @CRLF & $Item[3] & _
@CRLF)
$Found = $Found + 1
EndIf
Next
Next
If $Found = 0 Then MsgBox(0, "Busqueda", "Lo siento, no hay ningún resultado encontrado.")
EndFunc;==>Buscar
Func CountItems ($Category)
$ItemCount = IniRead($IniFile, $Category, "Count", 0)
If $ItemCount = 0 Then Return
Return $ItemCount
EndFunc;==>CountItems
Func NoCats ()
MsgBox(0 + 48, "Base de Datos", "No hay categorías!")
EndFunc;==>NoCats
Func NoItems ()
MsgBox(0 + 48, "Base de Datos", "No hay elementos en esta categoría!")
EndFunc;==>NoItems
Func DelItem ($Category)
$List = ListItems ($Category)
If $List = 0 Then
NoItems ()
Return
EndIf
$WhichDel = InputBox("Borrar Elementos de la Categoria", "¿Cual de los elementos quiere borrar?" & @CRLF & _
$List, "", "", 400, 350)
If $WhichDel = "" Then Return
$Count = CountItems ($Category)
IniDelete($IniFile, $Category, "Item" & $WhichDel)
If $WhichDel <Count>DelItem
Func DelCat ($Category)
$Count = CountItems ($Category)
For $i = 1 To $Count
IniDelete($IniFile, $Category, "Item" & $i)
Next
IniDelete($IniFile, $Category, "Count")
$ReadCatList = IniRead($IniFile, "Settings", "Categories", "")
$DeleteCat = StringReplace($ReadCatList, $Category, "")
$DeleteCat = StringReplace($DeleteCat, "||", "|")
IniWrite($IniFile, "Settings", "Categories", $DeleteCat)
$OpenINI = FileOpen($IniFile, 0)
$ReadINI = FileRead($OpenINI, FileGetSize($IniFile))
$Replace = StringReplace($ReadINI, "[" & $Category & "]" & @CRLF, "")
FileClose($OpenINI)
$File = FileOpen($IniFile, 2)
FileWrite($File, $Replace)
FileClose($File)
EndFunc;==>DelCat
Func ListItems ($Category)
$Items = CountItems ($Category)
$List = ""
For $i = 1 To $Items
$Item = IniRead($IniFile, $Category, "Item" & $i, "")
$Item = StringSplit($Item, "|")
$List = $List & $i & ") " & $Item[1] & @CRLF & @TAB & $Item[2] & @CRLF & @TAB & $Item[3] & @CRLF
Next
If $Items <> "0" Then Return $List
EndFunc;==>ListItems
Func ShowItems ($Category)
$Items = CountItems ($Category)
$Items = Number($Items)
If $Items = 0 Then
NoItems ()
Return
EndIf
$List = ""
$Urls = ""
For $i = 1 To $Items
$Item = IniRead($IniFile, $Category, "Item" & $i, "")
$Item = StringSplit($Item, "|")
$Urls = $Urls & $i & ") " & $Item[1] & @CRLF
$Description = $Description & $i & ") " & $Item[2] & @CRLF
$Keywords = $Keywords & $i & ") " & $Item[3] & @CRLF
$List = "Links:" & @CRLF & $Urls & @CRLF & "Descripciones:" & @CRLF & $Description & @CRLF & _
"Keywords:" & @CRLF & $Keywords & @CRLF
Next
MsgBox(0, "Items from " & $Category, $List)
EndFunc;==>ShowItems
Func ListCats ()
$Category = IniRead($IniFile, "Settings", "Categories", "")
$Category = StringSplit($Category, "|")
$List = ""
For $i = 1 To $Category[0]
$List = $List & $i & ") " & $Category[$i] & @CRLF
Next
Return $List
EndFunc;==>ListCats
Func CountCats ()
$Category = IniRead($IniFile, "Settings", "Categories", "")
If $Category = "" Then
Return 0
EndIf
$Category = StringInStr($Category, "|")
If $Category > 0 Then
$Category = StringSplit($Category, "|")
Return $Category[0]
Else
Return 1
EndIf
EndFunc;==>CountCats
Func EditCat ($Category)
$List = ListItems ($Category)
If $List = 0 Then
NoItems ()
Return
EndIf
$WhichEdit = InputBox("Editar Elementos de la categoria", "¿Cual de los elementos quiere editar?" & @CRLF & _
$List, "", "", 400, 350)
If $WhichEdit = "" Then Return
$Count = CountItems ($Category)
$ReadItem = IniRead($IniFile, $Category, "Item" & $WhichEdit, "")
$Item = StringSplit($ReadItem, "|")
$AddUrl = InputBox("1/3) Pon Apunte to Category", "Añade una fecha-oUrl para este elemento en la categoria:" & @CRLF & _
Chr(34) & $Category & Chr(34), $Item[1], "", 400, 350)
If $AddUrl = "" Then Return
$Description = InputBox("2/3) Añada una descripción para el elemento", "Añada una descripción para el elemento." & @CRLF & _
"Url: " & $AddUrl & @CRLF & _
"Category: " & Chr(34) & $Category & Chr(34), $Item[2], "", 400, 350)
If $Description = "" Then Return
$Keywords = InputBox("3/3) Añada Precio-oPalabrasdebusqueda", "Añada Precio-oPalabrasdebusqueda" & @CRLF & _
"Url: " & $AddUrl & @CRLF & _
"Description: " & $Description & @CRLF & _
"Category: " & Chr(34) & $Category & Chr(34), $Item[3], "", 400, 350)
If $Keywords = "" Then Return
$AddItem = $AddUrl & "|" & $Description & "|" & $Keywords
IniWrite($IniFile, $Category, "Item" & $WhichEdit, $AddItem)
EndFunc;==>EditCat
Func AddCat ()
$AddCat = InputBox("1/1) Pon Category", "Usted puede añadir una categoría...", "", "", 400, 350)
If $AddCat = "" Then Return
$Category = IniRead($IniFile, "Settings", "Categories", "")
If $Category <Then>AddCat
Func RenCat ($Category, $CategoryNum)
$RenCat = InputBox("1/1) Rename Category", "Enter the new name of category:" & _
@CRLF & Chr(34) & $Category & Chr(34), "", "", 400, 350)
If $RenCat = "" Then Return
$ReadCatList = IniRead($IniFile, "Settings", "Categories", "")
$ReadINI = FileRead($IniFile, FileGetSize($IniFile))
$Replace = StringReplace($ReadINI, "[" & $Category & "]", "[" & $RenCat & "]")
Sleep(1 * 500)
$File = FileOpen($IniFile, 2)
FileWrite($File, $Replace)
FileClose($File)
$NewCat = StringReplace($ReadCatList, $Category, $RenCat)
IniWrite($IniFile, "Settings", "Categories", $NewCat)
EndFunc;==>RenCat
Func AddItem ($Category)
$AddUrl = InputBox("1/3) Pon Apunte a una Categoría", "Añada la fecha-o Url para el elemento en la categoría:" & @CRLF & _
Chr(34) & $Category & Chr(34), "", "", 400, 350)
If $AddUrl = "" Then Return
$Description = InputBox("2/3) Añada una descripción para un elemento", "Añada una descripción para el elemento." & @CRLF & _
"Url: " & $AddUrl & @CRLF & _
"Category: " & Chr(34) & $Category & Chr(34), "", "", 400, 350)
If $Description = "" Then Return
$Keywords = InputBox("3/3) Añada Precio-oPalabrasdebusqueda para el elemento", "Añada Precio-oPalabrasdebusqueda para el elemento." & @CRLF & _
"Url: " & $AddUrl & @CRLF & _
"Description: " & $Description & @CRLF & _
"Category: " & Chr(34) & $Category & Chr(34), "", "", 400, 350)
If $Keywords = "" Then Return
$ItemNum = CountItems ($Category)
$ItemNum = $ItemNum + 1
$AddItem = $AddUrl & "|" & $Description & "|" & $Keywords
IniWrite($IniFile, $Category, "Item" & $ItemNum, $AddItem)
IniWrite($IniFile, $Category, "Count", $ItemNum)
EndFunc;==>AddItem
MsgBox(0, "www.autoit.es", "Gestión Urls ")
Exit