Gestión de datos altas, bajas,consultas 1Tabla con 3 campos

y programas personales para otros como tu, puede que te corrijan ;)
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2085
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Gestión de datos altas, bajas,consultas 1Tabla con 3 campos

Mensaje por BasicOs »

Almacenar direcciones Web, con descripción y palabras clave de búsqueda.

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
Responder