Académique Documents
Professionnel Documents
Culture Documents
Es
Fr
Autonomadigitalytecnolgica
Cdigoeideasparaunainternetdistribuida
BlogLinkotecaFeed RSS
Autonomadigital
Culturalibre
Culturatecnolgica
Desarrolloweb
GNU/Linux
Infraestructuradigital
Scriptingyprogramacin
Softwarelibre
Visualizacindedatos
WordPress
Buscarentradas
Usandounarchivodetextoplanocomobasededatos:alternativaligeraaSQL
10deMayode2013
HayaplicacioneswebparalasqueunabasededatosSQLselequedagrande.UnabasededatosSQLnecesitaunservidordebase
dedatosqueconsumenopocosrecursosennuestramquinaademslabasededatosnecesitasercreada,juntoalosusuariosysus
permisos,hacefaltaconfigurarcorrectamentecodificaciones,crearlasdiferentestablas
Porotrolado,aunquelosarchivosSQLsonarchivosdetextoplano,suedicinmanual,sinutilizarloscomandosqueproveunintrprete,
comoPHPporejemplo,estediosa.Parautilizarunconjuntodedatosyagenerado,generalmentehayqueprogramarunscriptquelos
formateesegnlasintaxisSQLparapoderinsertarlosenlabasededatos.
Porqunoutilizarunarchivodetextoplanocomobasededatos?Estonosahorratodoeltrabajorelacionadoconelservidorde
basededatos.Ademspermitetrabajardirectamenteconunarchivoeditableporunapersona.
Lasaplicacioneswebqueusanestesistemanonecesitaninstalacinpropiamentedicha,bastaconsubirunosarchivosPHPanuestro
servidorweb.Actualizarelcontenidodelapginaestanfcilcomoeditarunarchivodetextoysubirlo.
ComoconunabasededatosSQL,seguimosdisfrutandodelasventajasdetenerlosdatosyelcdigoseparados.Casitodaslas
aplicacionesparamanejardatospermitenexportaraunarchivodetextoplano,tipoCSV,locualevitatenerqueprogramarunconversor
paraincorporardatosdemaneramasivaanuestraaplicacinweb.
Todoventajas.Vamosavercmopodemosponerloenprctica.
PHPincluyeunconjuntodecomandosparacomunicarseconunarchivodetexto:abrirlo,leerloyescribirenl.Agrandesrasgostodolo
quetenemosquehaceres:
https://voragine.net/weblogs/usandounarchivodetextoplanocomobasededatosalternativaligeraasql 1/13
3/5/2017 Usandounarchivodetextoplanocomobasededatos:alternativaligeraaSQL| Autonomadigitalytecnolgica
Seguirunordenalahoradeguardarlosdatosenelarchivodetexto,generarunaestructuraquePHPpuedainterpretar.
AccederalosdatosdelarchivodesdePHPyordenarlosenunamatrizparapoderusarlos.
RecorrerlamatrizconunloopparagenerarlasalidaHTML.
Labasededatos:elarchivodetextoplano
Comoejemplovamosapensarenunarchivollamadocontactos.txtque,amododeagenda,contieneinformacinsobrenuestros
contactos.Unabuenamaneradeestructurarlosdatospodraserlasiguiente:
Nombrecontacto1|emailcontacto1|websitecontacto1|telfonocontacto1
Nombrecontacto2|emailcontacto2|websitecontacto2|telfonocontacto2
Bsicamentenostenemosquepreocupardequeencadalneahayaunregistro(uncontactoennuestroejemplo),quecadacolumnasiempre
contengaelmismotipodeinformacin,yquelasceldasestnseparadassiempreporelmismocaracter,aserposiblequenovayamosa
usarensucontenido.
AccediendoalosdatosdelarchivoconPHP
Paraaccederalarchivousamoslafuncinfopen()dePHP.Elparmetrorindicaqueestamosabriendoelarchivosoloparaleersu
contenidoycolocaelpunteroqueloirrecorriendoalprincipio.
1 $fp=fopen('contactos.txt','r');
2 if(!$fp){echo'ERROR:Nohasidoposibleabrirelarchivo.Revisasunombreysus
permisos.';exit;}
UnavezledoelarchivodesdePHPyextradalainformacin,locerramosconfclose():
1 fclose($fp);
ParaquePHPpuedaaccederalarchivo,tenemosqueasegurarnosdequelospermisosdelarchivoestncorrectamenteconfiguradosyla
rutaqueproporcionamosalafuncinfopenseacorrecta.Laentradadelmanualdephp.netsobrefopencontieneinformacindetallada
sobreposiblesproblemas.
MontandoelloopygenerandolasalidaHTML
1 $loop=0;//contadordelneas
2 while(!feof($fp)){//loophastaqueselleguealfinaldelarchivo
3 $loop++;
4 $line=fgets($fp);//guardamostodalalneaen$linecomounstring
5 //dividimos$lineensusceldas,separadasporelcaracter|
6 //eincorporamoslalneaalamatriz$field
7 $field[$loop]=explode('|',$line);
8 //generamoslasalidaHTML
9 echo'
10 <div>
11 <div>Nombre:'.$field[$loop][0].'</div>
12 <div>Email:'.$field[$loop][1].'</div>
13 <div>Website:'.$field[$loop][2].'</div>
14 <div>Telfono:'.$field[$loop][3].'</div>
15 </div>
16 ';
17 $fp++;//necesitamosllevarelpunterodelarchivoalasiguientelnea
18 }
Lafuncinfeof()compruebasielpunteroquerecorreelarchivohallegadoalfinaldeste.
Lafuncinfgets()devuelvelalneacompletaenlaqueestsituadoelpunterodelarchivo.Podemoslimitarlasalidadefgetsenbits
(1024,2048)silaslneassonlargasynolasnecesitamoscompletas.
Elcdigocompleto:
1 $fp=fopen('contactos.txt','r');
2 if(!$fp){echo'ERROR:Nohasidoposibleabrirelarchivo.Revisasunombreysus
https://voragine.net/weblogs/usandounarchivodetextoplanocomobasededatosalternativaligeraasql 2/13
3/5/2017 Usandounarchivodetextoplanocomobasededatos:alternativaligeraaSQL| Autonomadigitalytecnolgica
2 if(!$fp){echo'ERROR:Nohasidoposibleabrirelarchivo.Revisasunombreysus
permisos.';exit;}
3
4 $loop=0;//contadordelneas
5 while(!feof($fp)){//loophastaqueselleguealfinaldelarchivo
6 $loop++;
7 $line=fgets($fp);//guardamostodalalneaen$linecomounstring
8 //dividimos$lineensusceldas,separadasporelcaracter|
9 //eincorporamoslalneaalamatriz$field
10 $field[$loop]=explode('|',$line);
11 //generamoslasalidaHTML
12 echo'
13 <div>
14 <div>Nombre:'.$field[$loop][0].'</div>
15 <div>Email:'.$field[$loop][1].'</div>
16 <div>Website:'.$field[$loop][2].'</div>
17 <div>Telfono:'.$field[$loop][3].'</div>
18 </div>
19 ';
20 $fp++;//necesitamosllevarelpunterodelarchivoalasiguientelnea
21 }
22
23 fclose($fp);
Casitodoestemanualestbasadoenelestupendoartculosobreeltemapublicadoendesigndetector.
Contexto
Desarrolloweb,basededatos,CSV,fclose,feof,fgets,fopen,MySQL,opendata,PHP,sql
Autor
AlfonsoSnchezUzbal
,akaskotperez
Contenidorelacionado
Usandobashycronparaautomatizarlacopiadeseguridaddeunabasededatos
Cmointeractuarconelservidordebasededatossqlmediantecomandos,desdeunscriptdebash
Scriptparamonitorizaryreiniciarautomticamenteelservidordebasededatosmysqlencasodefallo
AadircategorasyetiquetasdirectamentealabasededatosmedianteunafuncinenWordPress
CmopasarvariablesdeunapginaaotraenunawebconPHP
Compartir
36comentarios
1. PorMIQUELBORDERASALADIE18deMarzode2014
Hola:
Yoenmisaplicacionesweb(tantoeninternetcomoenentornosland)estoyusandobasesdedatosutilizandoarchivosdetextoplano
accediendoaellosutilizandoPERL.Loquepasaesqueparaarchivosmuygrandes(digamosdevariosmilesodecenasdemilesde
registros)loquehagoesponerlacondiciondequelosregistrostenganelmismonumerodecaracteres,aunqueseanespaciosen
blancopuestosdeformaautomatica.
Estacondiciontienelaventajadepoderaccederymodificardirectamenteaunregistro(respetando,esosi,lalongitudmaximade
caracteres)sintenerquecargartodoelarchivoenunarrayparamodificarloenmemoryayluegoreescribirlotodoeneldiscoduro.
https://voragine.net/weblogs/usandounarchivodetextoplanocomobasededatosalternativaligeraasql 3/13
3/5/2017 Usandounarchivodetextoplanocomobasededatos:alternativaligeraaSQL| Autonomadigitalytecnolgica
Elhechodemanejararchivosplanosdesdetupropioprogramaademas,siemprequetuprogramaseaeficiente,hacequeseaun
accesomuyrapido,puestoquenohacefaltautilizarintermediarios.
Yonuncamodificomisarchivosmanualmenteporquelainterfazdemisaplicaconesmepermitehacerlodeformadirecta.Noobstante
podriahacersemanualmentesiempreycuandoserespetaralalongitudfijadecadalineadetextoosereprocesaraconunasencilla
aplicacionelarchivounavezmodificadoparaajustarlaslongitudesdelaslineasdetexto.
ObviamenteestoesunaalternativaalasbasesdedatosSQLsindesmerecerlasporello.
Unsaludo.
Miquel
1. Porskotperez24deMarzode2014
Graciasporcompartiraqutusolucin,Miguel.EfectivamenteestassolucionessonalternativasaSQLendeterminados
proyectosquenonecesitanunagraninfraestructuradebasededatos.Estonosignificaquehayaqueabandonarporcompleto
SQL,nicamentequehayproyectosalosquelesvienemejorotrotipodegestindelosdatos.
Noentiendoporqulosregistrostienenquetenerunnmerodecaracterresfijo.
Unsaludo
2. PorMIQUELBORDERA24deMarzode2014
Hola:
Elhechoquelosregistrostenganuntamaofijotienedosgrandesventajas:
1.Puedesaccederdirectamenteaunregistrosintenerquerecorrertodoelarchivo.Porejemplo,sicadaregistrotiene150
caracteres(seanlosquesean)yquieresiralregistro20000,lounicoquetienesquehaceresponerelpunterodelficheroenla
posicion150x20000=3000000.
2.Silalongitudfijadelosregistrosestabienestimadacomolalongitudmaximaquevasanecesitarenelfuturo,puedesmodificar
tranquilamenteelregistro20000sinsobreescribirelregistro20001ysinqueelrestoderegistrosdesplacensuposicionfisicadentro
delarchivoysintenerquereescribirtodoelarchivo.Sienelfuturosedieraelcasoquenecesitarasmaslongitudparatusregistros
podriasobienredimensionarelarchivoconunsencillisimoprogramaquepuedeshacertetumismoobienpuedesponerdesdeun
principiouncampoencadaregistroparapoderincluirunnumeroderegistrodecontinuaciondelcontenidodeesteregistroencaso
denecesitarmasespacio.
Youtilizoesteformatodearchivo,entreotrascosas,enunabasededatosquetengodeenvioyrecepciondepaqueteriayloque
hagoesporunladomantenerautomaticamenteunindiceenotroarchivodetextodepqueotamaoconlosnumerosderegistrosde
pedidosnofinalizadosyademasencadaregistrotengouncampoquelorelacionaconlelnumerosderegistrodelpedidoanteriory
posteriordelmismoproveedor,deformaquecongranvelocidadpuedoverencadamomentoelestadodemispedidos.Obviamente
tambientengounaopcionpararealizarunabusquedaavanzadadepedidosatrasadosoactualespordiferentescriteriosdebusqueda
endondeaquisiqueloquehaceesrecorrertodoelarchivodearribaaabajo.Ahorabien,unavezencontradounregistroen
cuestionespancomidoencontrarlosregistrosrelacionadosconlainformacionderegistrosrelacionadosguaradaenelcampoparatal
fin.Siquieromodificardatosdeunpedido,simplementeloquehagoesmodificareseregistrosintocarelrestodelarchivo.
Paraarchivospequeostodoestonotienemuchosentido,perocomomasgrandeeselarchivomasaficienciaganasenlosprocesos
delectura,escrituraybusqueda.Todoescuestiondehecharleimaginacionaltema.
Unsaludo.
Miquel
https://voragine.net/weblogs/usandounarchivodetextoplanocomobasededatosalternativaligeraasql 4/13
3/5/2017 Usandounarchivodetextoplanocomobasededatos:alternativaligeraaSQL| Autonomadigitalytecnolgica
1. Porskotperez25deMarzode2014
Muchasgraciasporlaexplicacin,Miquel.Esunsistemabienoptimizadoelquedescribes.Meloapunto.
3. PorCharlesXavier24deMarzode2014
Hola
Quieroalmacenarelarchivodetextodelcualleeriayescribiriaendropbox.
Mepermiteleerelarchivoeimprimirlosdatosdelarchivoenunapagina.htmlperocuandoquieroescribirsobreelnomeesposible,
nomemandaningunerrorsolonolohace,perotampocohedebuggeadoelcodigosolocambielosmodosdelaaperturadelarchivo
(r,r+,a,a+).
Yalovalideescribiendosobreelarchivocuandoestaenlamismacarpetaquelapagina.phpynotengoningunproblemalohacede
maravilla
Elarchivosobreelqueescriboes.html,tambienloprobeconun.txtytampocofunciona.Tendranalgunaideasiseracuestionde
permisosporpartededropboxocomohacerloencasodeserposible?
*Tengoserviciodehostgratuitoysolotengo1gbdealmacenamiento,endropboxtengomayorcapacidad
saludos
1. Porskotperez25deMarzode2014
HolaCharlesXavier,
paraescribirenunarchivodesdePHPdebesabrirloenmodoescritura.Enelejemplodearribalohemosabiertoenmodo
lectura,comodenotaelparmetror:fopen(contactos.txt,r)
Puedesvertodoslosmodosenlosqueinteractuarconunarchivoenlapginafopendephp.net.
SiesunproblemaconDropboxnotepuedoayudar:nuncahetrabajadoconlynoconozcosuAPI.
4. PorPolloFrito23deMayode2014
Estoybuscandounaslneasdecdigoparapresentarunabasededatosentxt,deformapaginada(primerapginalineas1a5,
segundapginalneas6a10,etc..),parapresentarlosresultadosagrupadosde5en5(ode10en10ocomosedecida),estilo
resultadosgoogle..Saludos
1. Porskotperez23deMayode2014
HolaPolloFrito,estecdigotevale.Paracontarlaslneaspuedesusarelcounterdelneasdelloop:enelcdigodearribaesla
variable$loop.Conestavariablepuedesdecirquemuestrelosresultadossi$loopesmenoroigualque4(empiezaen0).De
estamanera,enlapgina1mostraraslaslneasde1a5lapgina2puedeshacerlapasandounavariablemediante$_GET
paraqueempieceacontarenelresultado5.
Sitienesdudassobrecmopasarvariablesmediante$_GETpuedesconsultarelpostCmopasarvariablesdeunapginaa
otraenunawebconPHP.
Saludo
https://voragine.net/weblogs/usandounarchivodetextoplanocomobasededatosalternativaligeraasql 5/13
3/5/2017 Usandounarchivodetextoplanocomobasededatos:alternativaligeraaSQL| Autonomadigitalytecnolgica
5. PorAlex07deJuniode2014
Buenastardes,muchasgraciasporelcdigoymesirvidemuchoyaquesoynuevoprogramandoenphpyenestosmomentosestoy
realizandounproyectodetareaenlacualdeborealizarlavalidacindeusuariosconsuIDysuPasswordosurespectivoregistro.La
validacindeusuariosyregistrosyalotengorealizadoperoCmopuedohacerparavalidarlainformacindelarchivo.txty
modificarlosdatosespecficosdelusuarioquehayainiciadosesin?
Simepuedencolaborarconelloestarmuyagradecido.
Saludos
6. Porskotperez08deJuniode2014
HolaAlex,
sielusuarioiniciosesinconunformulariotienessusdatosenlavariableglobaldephp$_POSTo$_GET,segnelmethodqueus
elformulario.Unavezquetieneslosdatosdesesinenvariablespuedescompararlosconlosdelarchivo.txtymodificarlosoloque
necesites.Puedesecharunojoaesteotropostsobremanejodevariables$_POSTy$_GET.
Tambinpuedesguardarlosdatosdesesinenunacookie.Estotesirveparatenerlossiempredisponibles.
7. PorMIQUELBORDERASALADIE25deJuliode2014
Hola:
Siguiendoconmiscomentariosdemasarribaenlosquehablabadeutilizarficherosdetextoconregistrosdeiguallongitud,enforma
detabla,aadirequesielcampodebusquedadeunregistrosabemosconcertezaqueestaordenadoensentidocrecienteo
decreciente(yaseannumerosocaracteresalfanumericos)podemoscrearnosunarutinadebusquedaporbiseccionenlugardetener
querecorrertodoelarchivootenerunindiceparaleloconinformacionadicional.
Meexplico:sitenemosunarchivo,pongamoscon100000(cienmil)registros,loqueharemosprimeroseraleerdirectamenteel
registro50000ycomprobarsielregistrobuscadoestaporencimaopordebajodeeste.Siestaporencimairemosalregistro75000
yharemoslamismacomprobacionysiestapordebajoiremosalregistro25000.yharemoslomismo,hastaqueelvalorbuscadosea
elencontradoosinoexiste,losaberlotambienconcerteza.Enestecasosimplementenecesitaremoscomomucholeer17registros
paraunvalordebusquedaaleatorio,mientrasquehaciendolodeformasecuencialnecesitariamosleerunpromediode50000
registros,suponiendounvalordebusquedatambienaleatorio.Enterminosgeneraleselnumeroderegistrosquenecesitamosleeren
unabusquedaporbisecciones:n=logaridmoenbase2delnumeroderegistrosdenuestrabasededatos.
Unsaludo.
MiquelBordera
8. PorAaronLugo14deAgostode2014
Hola
AlfonsoSnchezUzbal,akaskotperez
Meahsidodemuchautilidadtupostehaadidocosasdemicosechaytodovavientoenpopa,sinembargonotengomucha
experienciaenPHPynoehlogradofiltrarmisresultadosporejemplosisoloquisieramostraraloscontactosconelnombreLuis.
sipudierasayudarmemeseriadegranutilidad,estarmuyagradecido.
1. Porskotperez18deAgostode2014
https://voragine.net/weblogs/usandounarchivodetextoplanocomobasededatosalternativaligeraasql 6/13
3/5/2017 Usandounarchivodetextoplanocomobasededatos:alternativaligeraaSQL| Autonomadigitalytecnolgica
HolaAaron,
parahacerbsquedasenunabasededatosdeestetipo,contenidoenunarchivodetextoplano,puedesusarelmtodoque
comentaMiquelenloscomentarios.
Demaneramsineficiente,aunqueeficaztambin,puedeshacerunloopconforeachyunasentenciacondicionalquehagalo
quequierascuandolavueltadelloopcontengaloqueestsbuscando,porejemploLuis.
9. PorMIQUELBORDERASALADIE27deAgostode2014
Holadenuevo:
Ahoramismoestoytrabajandoenunproyectoparadesarrollarunaagendaparacitasmedicas.Despuesdepensarlobastantey
estudiarlasdiferentesformasdehacerlo,loquevoyahaceresagruparcadadiaenunatabladecitasycadatablaquedaraguardada
enunarchivodetextodelaformacitas_fecha.dat(porejemplocitas_20140913.dat,paralascitasdeldia13deseptiembrede2014.
Elhacerlodeestaformahacequesepuedaaccederalascitasdeundiaconcretodeformacasiinstantaneaysinlacomplegidadque
entraacrearunaunicatablaglobalparatodaslascitas.Alusuariotodoestoleestransparente,pueslacreacionyaccesodeestos
archivosdetablasdetextolasrealizaelpropioprograma.
Enestecasocomolosarchivos(lastablas)sondepequeotamaoalcontenersolocitasdeunsolodia(tirandoporloalteenundia
podriamostener100citascomomucho)nohacefaltarealizarningunabusquedaporbiseccion,nisiquieraqueestenordenadasni
nada.Simplementeseabreelarchivo,secargalatablacompletaenunarrayyluegoseprocesasegunlasnecesidadesdelusuario.
Luegosielusuariodecidemodificar,aadiroeliminarunacita,simplementesereescribeelarchivocompletoylistos.
Sideseamosbuscarunacitaenunrangodefechas,simplementeloqueharemosseraabrirdeformasecuenciallosarchivos
pertenecientesalrangodefechasdeseadoybuscarlascitasquenosinteresan).
Unsaludo.
MiquelBordera
10. PorEnriqueCano12deSeptiembrede2014
Buenosdas.
Justomeencuentroenlasituacindedecidirparamipropiawebsiutilizarunabasededatosparagestionarloscontenidoso
guardarlosenficherosdetexto.
Lasolucinsinbasededatosmeparecemuyinteresante,apartedelaposibilidaddeeconomizarelcostedelalojamientosi,
definitivamentemeasegurodenonecesitarunabasededatos.
Pero,apartedeopinionesmsomenossubjetivas,annoheencontradoningunacomparativasobrelostiemposdeaccesoalos
ficherosendiscoylostiemposdeaccesoaloscontenidosenunabasededatos,aunquesmuchateorasobreelprocesomecnico
deaccederalosdatos.
Entiendoquesemejantecomparativatalveznoexista,sobretodoteniendoencuentalasmuchasvariablesquepuedeimplicar.Pero,
conocisalgunafuentequesirvadeayudaenesto?
Saludosatodos.
1. Porskotperez16deSeptiembrede2014
HolaEnrique,
https://voragine.net/weblogs/usandounarchivodetextoplanocomobasededatosalternativaligeraasql 7/13
3/5/2017 Usandounarchivodetextoplanocomobasededatos:alternativaligeraaSQL| Autonomadigitalytecnolgica
noconozcoesacomparativa,peroparamesunacuestinde:
eltamao.Situbasededatosnoesmuygrande(losregistrosnosuperanlostresdgitos)puedesfuncionarconbasede
datosenarchivosdetexto.SiesmayoresmseficienteunabasededatosestiloSQL.
eltipodeconsultasquenecesites.
Estehilodestackoverflowcontienealgunasreflexionesinteresantes.
11. PorDaniel17deSeptiembrede2014
Unbuenpostaseguirparamontarunsistemawebsinsql.Aadirqueexistencmsdesarrolladosyactivossinsql:
getsimple.info
Kirby
Stacey
blitzhive.com
Enhorabuenaporelblog
1. Porskotperez17deSeptiembrede2014
HolaDaniel,
s,desdehaceuntiempocreoquesonunamaneramuyvlidademontarymantenerunapequeawebounblog.
Nosotroshemosdesarrolladosimplittconestaidea.
12. PorDanielZylberberg24deNoviembrede2015
Otracosaquepodrasusarescrearvariosarchivosporseparadoparaqueseamsrpidoparsearloyaccederalosdatosenvezde
recorrertodoelarchivoparaponerelpuntero.
Tambinsepuedeusarunobjeto,esdecirjson_encodedephpparapasarunarrayyesearraylograbsenuntxtcon
file_put_contents.
Despueslolevantsconfile_get_contentsylehacsunjson_decode.
Hayalternativasmuybuenasqueyahaceneso,comosqlite,queesunabasededatosliviana,dondecompiselarchivitosqliteen
algunacarpeta,ylousscasicomomysql.
Tienecercade300.000pruebasautomatizadasyesmuyrobusto,phplosoportapordefecto,nonecesitsinstalarlenada.
Sielarchivosecorrompe,teloarregla,silacodificacionesdiferente,loestandarizayvariascosasasi.
Esoseusaenvariosreproductoresdeaudioparaguardarlosplaylist,nosolamenteenphp,inclusoenappsdeandroid.
Apartesoportaqueryscomoselectnow(),valorespordefautycosasasiquesonmuytiles.
1. Porskotperez26deNoviembrede2015
GraciasporelaporteDaniel.EfectivamenteSQLiteesunamuybuenaalternativaaMySQLyaqueesmsligera,yatrabajar
conarchivosdetextoplanoapelo,comoexplicoeneltutorial,porqueyatienestodoelsistemamontado.
https://voragine.net/weblogs/usandounarchivodetextoplanocomobasededatosalternativaligeraasql 8/13
3/5/2017 Usandounarchivodetextoplanocomobasededatos:alternativaligeraaSQL| Autonomadigitalytecnolgica
13. Poredwintorres09deFebrerode2016
hebuscadoestopormuchotiempoymealegroqueatodoslesfuncioneperoaminomefuncionaylonecesito.logico,sequeestoy
haciendaalgomal,peronoseloqueesonosesihayquecolocarlodentrounaestructurahtmlespecifica.
1. Porskotperez10deFebrerode2016
HolaEdwin,
conalgndetallemssobredndeeststeniendolosproblemasquizstepodamosayudar.
14. PorElvin12deFebrerode2016
Hola,esperopuedanayudarme,soynuevoprogramandoconarchivos,tengounproyectoquehacer,debohacerunaplanilla
electrnicaenjava(tipoexcel),unavezqueelusuariohizoalgoenlaplantilla,deboguardartodalaplantillaendisco(piensousarun
JTable),parapoderrecuperardespues.midudaes,comopodriaalmacenarlosdatosdelJTableendisco,yaquepuedencontener
numeros,comostrings,Sesuponequedebousarestructurascomo,Listas,PilasoColas,dependedem.Esperopuedanguiarmeun
pocoenesto,gracias.
1. Porskotperez12deFebrerode2016
HolaElvin,tupreguntaseescapadeltemaquetratamosenesteartculo.Tesugieroquebusquesenwebsoforos
especializadosenjava.
15. PorDiana10deAbrilde2016
Holaquetalvituarticulo,meinteresoyaqueestoyentrandoenestetema,megustariasabercomopodrahacerparaeliminaro
modificarundatoingresadoenelarchivotxt
16. PorMIQUELBORDERASALADIE10deAbrilde2016
Hola:
ElmtodoparamodificarundatoenunarchivoTXTvendrdeterminadoporeltamaodelarchivoy/oporsoconocemosalgodesu
estructura.
Sielarchivonoesmuygrandeysepuedeleerycargarenlamemoriapueshacemosesto.Loleemosentero,porejemplocargndolo
enunarray,luegomodificamosloquequeramosylosobreescribimoscompletamente.Yodiraqueestemtodoesvalido,teniendo
encuentalacapacidaddelosactualesordenadors,paraarchivosdeunoscuantoscentenaresdeKbytes.
Sielarchivoesmuypesado,yparaevitarsobrecargarlaRAMdelordenador,loquepuedeshaceresleerelarchivohastaelpunto
quedeseasmodificaryalavezescribirloquevasleyendoenunarchivotemporaleneldiscoduro.Luego,enesepuntoaadesenel
archivotemporallainformacionquehasmodificado,yacontinuacincontinuasescribiendoenelarchivotemporalelrestodela
informacindelarchivooriginalquenohasmodificado.Luegofinamenteborraselarchivooriginalyalarchivotemporalleponesel
nombredelarchivooriginal.
Lalineaqueseparaunmtodouotrovendrdeterminadaporellenguajedeprogramacin/entornoqueutilicesylacapacidaddetu
ordenador.ElprimermtodoesmassimpleyrpidoeinclusopuedesusarloenarchivosqueexcedandelaRAMsiellenguajeoel
https://voragine.net/weblogs/usandounarchivodetextoplanocomobasededatosalternativaligeraasql 9/13
3/5/2017 Usandounarchivodetextoplanocomobasededatos:alternativaligeraaSQL| Autonomadigitalytecnolgica
entornodedesarrolloutilizaeficientementelamemoriavirtualysoportaarraysdetangrantamao,aunqueentalcasoelproceso
tomarmastiempo.
Unaterceraopcinesconocerdeantemanolaestructuradelarchivodetextoyelpuntoexactodentrodelarchivodondeestla
informacinquequieresmodificar/eliminar.Enestecasoserposiblesobreescribirdirectamenteenelarchivooriginallainformacin
nuevaporlaviejacolocandoelpunterodelficheroenlaposicinadecuada.Estemtodoesmuyeficienteymuyrpido,perosinose
hacebienpuedessobreescribirinformacinquenodebaserborradasiloquevasaponertienemscarcteresqueelfragmento
original.Oporelcontrario,alomejortendrsqueaadircarcteresredundantes,talescomoespaciosenblanco,enelcasoqueel
nuevofragmentodetextoseamscortoqueeloriginal.Porelloestetercermtodonosiempreservalido.
Unsaludo.
MiquelBordera
1. Porskotperez19deAbrilde2016
GraciasdenuevoMiquelporotracompletsimayclaraexplicacin.
17. PorVictor27deAbrilde2016
Hola,
Tengo15GBdearchivospdfycuierohacerunsiteparavenderlocomomaterialdscargable,tengounhostinconhostgatorelplan
babycomodebohacerlabasededatos?
1. Porskotperez28deAbrilde2016
HaVictor,dependedemuchascosas:detusconocimientos,deltipodedatos
Tediraquelomsfcilyverstilesqueempiecesconungestordecontenidos.Asnotetienesquepreocupardelabasede
datosporqueyavienepreparada.WordPressesunabuenaopcin.
18. PorMuyinteresante!!15deJuniode2016
EfectivamenteelmismotutoriallovienPerlhacemuchosaos,nuncalopudeimplementarporquenoprofundiseenprogramacion,
aunqueamoelmundodelsoftware,linux,bsd,etc
Peroaprovechoacompartirunainquietuddetodamividayqueastaeldiadehoynopuderesolver:
Necesitoguardarfragemtosbrevesdetextoplano(informacincopypaste)yetiquetarladevariasmaneras,fechas,fuente,palabras
clave,titulo,etc,paraluegorecuperarlaatravsdelasetiquetas,quieroalgomuysencilloquemepermitaguardarmilesde
fragmentosdeinformacin,tienequeseralgoquetengaunacurvadeaprendizajebreveysencilla,ydeserposible,queseaun
programaqueyaexista.Ungransaludoydesdeyamuchasgracias.Claudio
1. Porskotperez15deJuniode2016
HolaClaudio,
elmtodoquedescriboenelartculotepuedeservir.PuedesguardartusregistrosenunarchivoCSV(quepuedeseditar
cmodamenteconcualquiereditordehojasdeclculo).LuegopuedesleerelarchivoCSVconPHP,talcomoseexplicaenel
artculo,yfiltrarporlacolumnaquequierasparamostrarlosresultados,queentucasoseralacolumnadelaetiqueta.
https://voragine.net/weblogs/usandounarchivodetextoplanocomobasededatosalternativaligeraasql 10/13
3/5/2017 Usandounarchivodetextoplanocomobasededatos:alternativaligeraaSQL| Autonomadigitalytecnolgica
19. Porjorgeaguilar15deJuliode2016
hola!!tengounadudadecomohacerunbotondebusquedaparaencontraruntxtyqueesetxtmandarloaunatabladehtml.
1. Porskotperez18deJuliode2016
HolaJorge,buscaruntxtodentrodelcontenidodeuntxt?Danosmsdetallessobretuproblemayquizspodamos
ayudarte.
20. PorFabricio28deNoviembrede2016
Hola!laverdadquemesirvedemucholatabla.labasededatolaarmoconjavascriptmedianteunprogramadechat,megustaria
hacerlaenPHPperolaverdadquemecuestamuchomepodriasdarunaideadecomohacerloalainversa?queunatablamecree
elarchivo.txt
Desdeyamuchasgracias,busquemuchoalgoasidesencillo!
Saludosygraciasporcompartir!
1. Porskotperez28deNoviembrede2016
HolaFabricio,
elartculocuentacmoleerunarchivodetexto.Parapoderescribirenunarchivodetextodebesinvocarfopenenmodo
escritura(w):
$fp=fopen('contactos.txt','w')
Deestamanerapuedeshacerlasconsultasnecesariasatubasededatos,yescribirlatablaenelarchivodetexto.
21. PorAlexander28deFebrerode2017
BuenasesperoymepuedanayudarenestaaplicacinqestoydesarrollandoenPHPparaamitrabajo.
Laideaesquequierosaberdequmaneravalidarlosdatoscargoenunarchivodetextoporejemplo
1Quevalidequetodoslosregistroscumplanconelnmerodecampos.
2quecadacampotengasusvalorespermitidos
3hayunoscamposquesevalidanconotroscampos,ejemplositengoenelcampoembarazadaelnmero1quequieredecirqueesa
usuariaestaembarazadaportalmotivodebovalidarqueelcampodesexodebeserfemeninoyelcampoedaddebesermayora12
aosymenorde60aos.
Esperomepuedanentenderyayudar.
Dejaruncomentario
*Nombre
*Email(nosepublicar)
https://voragine.net/weblogs/usandounarchivodetextoplanocomobasededatosalternativaligeraasql 11/13
3/5/2017 Usandounarchivodetextoplanocomobasededatos:alternativaligeraaSQL| Autonomadigitalytecnolgica
Sitioweb
Comentario
Enviarcomentario
Avsameconuncorreoelectrnicocuandohayaunnuevocomentario.
Nohaytrackbacks
Sobreesteblog
AutonomadigitalytecnolgicaeselblogdeAlfonsoSnchezUzbal(akaskotperez)desde2007.Enlencontrarstrozosdecdigo
endiferenteslenguajesdeprogramacin(snippets),reflexionessobreautonomadigitalytecnolgica,softwarelibreyculturalibreen
general.LostextosestndisponibesbajoCreativeCommons,yelcdigobajoGPL.
Foto:CcileHuet
AlfonsoSnchezUzbal
https://voragine.net/weblogs/usandounarchivodetextoplanocomobasededatosalternativaligeraasql 12/13
3/5/2017 Usandounarchivodetextoplanocomobasededatos:alternativaligeraaSQL| Autonomadigitalytecnolgica
DesarrolladordesoftwarelibreenMontera34,estudiodedesarrollowebquepusoenmarchaen2004juntoacompaerosdelaEscuela
TcnicaSuperiordeArquitecturadeMadrid,dondeestudiarquitectura.
Mientrasestudiabaarquitecturatrabajcomocorrectoryeditordetextos,webmasteryadministradordelaredGNU/LinuxenlaBiblioteca
CiudadesparaunFuturomsSostenible.
Interesadoenelpotencialdelosecosistemasdecolaboracinlibresylascartografasdigitalesciudadanas,en2007lanzaconotros
arquitectosyprogramadoresMeipi,plataformaparalacreacindeespacioscolaborativosgeorreferenciados.
En2007creaconunosamigosObsoletosunproyectodeinvestigacin,creacinydifusindesistemascreativosdetransformacinde
residuostecnolgicosesdecir,unespacioparael"cacharreo"yelhackeoengrupo.
EsmiembrofundadordeLabPlace,unespaciodefabricacindigital,deexperimentacinyaprendizajecolectivoenOust,unpueblodel
Pirineofrancs,dondevive.
Formapartedelcolectivo15mueblesconelquehapuestoenmarchalaplataformaCiudadEscuelaparaelreconocimientodeaprendizajes
informalesenproyectosurbanoscomunitariosusandolainfraestructuralibreOpenbadges.
Investigasobrelarepercusindelusodesoftwareytecnologaslibresenproyectosyprocesoscolectivos.En2013participenel
libroCiberoptimismo,conectadosaunaactitudconelartculoLgicadistribuidaparalaautoorganizacinciudadana.
https://voragine.net/weblogs/usandounarchivodetextoplanocomobasededatosalternativaligeraasql 13/13