Está en la página 1de 13

3/5/2017 Usandounarchivodetextoplanocomobasededatos:alternativaligeraaSQL| Autonomadigitalytecnolgica

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