Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Foros Linux » Desarrollo » Programación


Nuevo tema Responder al tema
 [ 8 mensajes ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mié Feb 17, 2010 2:37 pm
Mensajes: 5

Nota Publicado: Mar Abr 12, 2011 1:06 pm 
Arriba  
Saludos,
la verdad no se nada de programacion pero me gustaria por lo menos aprender cosas basicas.

Escribo porque tengo este inconveniente.

Uso red hat 5.3 (uso este porque es el que nos sirve para la mayoria de los programas que utilizamos)

tengo un archivo, en formato sdf, pero la verdad digamos que puede ser cualquier formato.
Este archivo contiene informacion de diferentes archivos en uno solo, y estan separados por algo comun.

El archivo tiene esta forma:

http://pastebin.com/10qnae1d
hasta alli.

Cada archivo esta separado por $$$$ y comienza con el nombre de cada archivo individual.

Lo que trato de hacer y no he podido es separar cada uno en un archivo individual con la misma extension, en este caso sdf.
Es decir que de un archivo xxxxxx.sdf tenga (para este caso) 1983.sdf 83939.sdf y 83997.sdf

se que me van a decir que lo haga manualmente, pero tengo el gran inconveniente que tengo un archivo sdf con millones de archivos sdf. Y para separarlos manualmente me llevaria quien sabe cuanto tiempo.

La verdad les agradeceria mucha su informacion, ya que no me seria util solo a mi, sino a muchos colegas de quimica computacional.

Adjunto el archivo multi
gracias!!!!


Adjuntos:
Comentario: Este es el archivo multi pero esta comprimido
XXXXXXXX.rar [4.28 KiB]
5 veces


Última edición por mcun el Mar Abr 12, 2011 1:06 pm, editado 1 vez en total
Mensaje editado por contener código muy largo, por favor utiliza el servicio de pastebin para publicar código muy largo.
 Perfil Email  

Desconectado
Moderador
Moderador
Avatar de Usuario

Registrado: Mié Nov 28, 2007 12:00 am
Mensajes: 1361
Ubicación: En la X del explorer (pulse para llamar)

Nota Publicado: Mar Abr 12, 2011 2:33 pm 
Arriba  
Pues para empezar dinos el lenguaje que vas a utilizar (C, java, bash, python...).

La idea en sí, es simple: leer el fichero línea a línea e irlo copiando en otro fichero hasta encontrar los $$$$$.

Pon también el código que tienes, que así es más fácil ayudarte.

_________________
Descargue el gestor de mp3 "Music Manager" -> (mmlf)
Última versión del gestor "Music Manager" -> (jmmm)

 Perfil  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mié Feb 17, 2010 2:37 pm
Mensajes: 5

Nota Publicado: Mar Abr 12, 2011 2:45 pm 
Arriba  
akodo

pues la verdad creo que seria en python (perdona, pero como dije no se de programacion)

normalmente usamos unos scripts que nos pasan y creo que son en python.

cuando me preguntas el codigo que tengo a que te refieres?

re-envio el archivo sdf original.


Adjuntos:
Comentario: asi es que se consigue
6287190269135505078.rar [4.87 KiB]
3 veces
 Perfil Email  

Desconectado
Forista Medio
Forista Medio
Avatar de Usuario

Registrado: Mié Jun 16, 2010 9:23 pm
Mensajes: 355
Ubicación: Venezuela

Nota Publicado: Mar Abr 12, 2011 4:21 pm 
Arriba  
Como ya te mencionaron, el problema es bastante fácil. Te recomendaría C++ para que comiences a "aprender esas cosas básicas" porque no siempre vas a tener a la disposición gente que pueda ayudarte (el Deitel y Deitel es muy buen texto para comenzar en C/C++). En mi país, los que se decantan por la química computacional son unos "verdugos" en computación. No sé porqué Uds son simples "usuarios" de scripts. Los químicos a ese nivel deben tener una sólida base en físico-química y ésta, como Uds bien saben, está cimentada en un buen conocimiento matemático que facilita la disposición hacia lo computacional (tomaron química computacional y no exigen un curso de métodos numéricos para químicos?).

_________________
[Reglamento del foro] [Blog]

 Perfil Email  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mié Feb 17, 2010 2:37 pm
Mensajes: 5

Nota Publicado: Mar Abr 12, 2011 4:36 pm 
Arriba  
Pues eso es un caso dificil pues nos ha tocado de nuestra cuenta muchas cosas.

 Perfil Email  

Desconectado
Moderador
Moderador
Avatar de Usuario

Registrado: Mié Abr 18, 2007 11:00 pm
Mensajes: 1209
Ubicación: Cojutepeque, El Salvador C. A.

Nota Publicado: Mar Abr 12, 2011 5:56 pm 
Arriba  
pues yo recomendaria que relices un script en bash, pero cualquier lenguaje es valido para el cometido (sobre todo scripting), esencialmente por la curva de aprendizaje, si lo necesitas lo mas pronto posible te sera un poco rapido de comprender y de implementar.

hay varios comandos del shell que te pueden ayudar (sed, cat, etc), ya te explicaron ademas lo que tienes que buscar en el archivo

_________________
Grüße...
Maiku

Full linux alchemist!!!

 Perfil WWW  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Jue Abr 26, 2007 11:00 pm
Mensajes: 1426

Nota Publicado: Mar Abr 12, 2011 6:16 pm 
Arriba  
Si es python es facilicimo:

Código:
f = open("archivo.algo")
chunks = f.read().split('$$$$')
i = 0

for chunk in chunks:
    o = open('chunk_' + str(i) + '.algo', 'w')
    o.write(chunk)
    i += 1

_________________
"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit."

"Finibus Bonorum Et Malorum", Cicerón

 Perfil WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mié Feb 17, 2010 2:37 pm
Mensajes: 5

Nota Publicado: Mié Abr 13, 2011 10:41 am 
Arriba  
Hola!

Gracias por el script!

Pienso que es bastante util, pero pasa algo.

El script hace esto:
\par
83939\par
-oechem-04121112023d\par
\par
24 24 0 0 0 0 0 0 0999 v2000\par
3.4743 0.2314 -0.3635 s 0 0 0 0 0 0 0 0 0 0 0 0\par
2.4458 -0.0636 0.8853 o 0 0 0 0 0 0 0 0 0 0 0 0\par
4.9516 0.1926 0.3300 o 0 0 0 0 0 0 0 0 0 0 0 0\par
-3.8110 1.5492 0.0044 o 0 0 0 0 0 0 0 0 0 0 0 0\par
3.3962 -0.8668 -1.3090 o 0 0 0 0 0 0 0 0 0 0 0 0\par
3.2425 1.5919 -0.8130 o 0 0 0 0 0 0 0 0 0 0 0 0\par
-2.9672 -0.6454 -0.1711 n 0 0 0 0 0 0 0 0 0 0 0 0\par
-1.6058 -0.4989 0.0953 c 0 0 0 0 0 0 0 0 0 0 0 0\par
1.1175 -0.2063 0.6260 c 0 0 0 0 0 0 0 0 0 0 0 0\par
-1.0819 0.7624 0.3792 c 0 0 0 0 0 0 0 0 0 0 0 0\par
-0.7678 -1.6140 0.0770 c 0 0 0 0 0 0 0 0 0 0 0 0\par
0.2796 0.9088 0.6444 c 0 0 0 0 0 0 0 0 0 0 0 0\par
0.5937 -1.4676 0.3424 c 0 0 0 0 0 0 0 0 0 0 0 0\par
-3.9553 0.3481 -0.1990 c 0 0 0 0 0 0 0 0 0 0 0 0\par
-5.3122 -0.2218 -0.5285 c 0 0 0 0 0 0 0 0 0 0 0 0\par
-1.6670 1.6709 0.4125 h 0 0 0 0 0 0 0 0 0 0 0 0\par
-1.1622 -2.6030 -0.1424 h 0 0 0 0 0 0 0 0 0 0 0 0\par
0.6816 1.8936 0.8667 h 0 0 0 0 0 0 0 0 0 0 0 0\par
1.2402 -2.3408 0.3285 h 0 0 0 0 0 0 0 0 0 0 0 0\par
-3.2712 -1.5966 -0.3688 h 0 0 0 0 0 0 0 0 0 0 0 0\par
-5.2914 -0.6721 -1.5248 h 0 0 0 0 0 0 0 0 0 0 0 0\par
-6.0621 0.5739 -0.5131 h 0 0 0 0 0 0 0 0 0 0 0 0\par
-5.5856 -0.9804 0.2102 h 0 0 0 0 0 0 0 0 0 0 0 0\par
5.0362 0.7027 1.1695 h 0 0 0 0 0 0 0 0 0 0 0 0\par
1 2 1 0 0 0 0\par
1 3 1 0 0 0 0\par
1 5 2 0 0 0 0\par
1 6 2 0 0 0 0\par
2 9 1 0 0 0 0\par
3 24 1 0 0 0 0\par
4 14 2 0 0 0 0\par
7 8 1 0 0 0 0\par
7 14 1 0 0 0 0\par
7 20 1 0 0 0 0\par
8 10 2 0 0 0 0\par
8 11 1 0 0 0 0\par
9 12 2 0 0 0 0\par
9 13 1 0 0 0 0\par
10 12 1 0 0 0 0\par
10 16 1 0 0 0 0\par
11 13 2 0 0 0 0\par
11 17 1 0 0 0 0\par
12 18 1 0 0 0 0\par
13 19 1 0 0 0 0\par
14 15 1 0 0 0 0\par
15 21 1 0 0 0 0\par
15 22 1 0 0 0 0\par
15 23 1 0 0 0 0\par
m end\par
> <pubchem_compound_cid>\par
83939\par
\par
> <pubchem_conformer_rmsd>\par
0.6\par
\par
> <pubchem_conformer_diverseorder>\par
1\par
8\par
4\par
6\par
3\par
5\par
2\par
7\par
\par
> <pubchem_mmff94_partial_charges>\par
21\par
1 1.67\par
10 -0.15\par
11 -0.15\par
12 -0.15\par
13 -0.15\par
14 0.57\par
15 0.06\par
16 0.15\par
17 0.15\par
18 0.15\par
19 0.15\par
2 -0.27\par
20 0.37\par
24 0.5\par
3 -0.68\par
4 -0.57\par
5 -0.65\par
6 -0.65\par
7 -0.55\par
8 0.12\par
9 0.08\par
\par
> <pubchem_effective_rotor_count>\par
4\par
\par
> <pubchem_pharmacophore_features>\par
7\par
1 3 acceptor\par
1 4 acceptor\par
1 5 acceptor\par
1 6 acceptor\par
1 7 donor\par
4 1 3 5 6 anion\par
6 8 9 10 11 12 13 rings\par
\par
> <pubchem_heavy_atom_count>\par
15\par
\par
> <pubchem_atom_def_stereo_count>\par
0\par
\par
> <pubchem_atom_udef_stereo_count>\par
0\par
\par
> <pubchem_bond_def_stereo_count>\par
0\par
\par
> <pubchem_bond_udef_stereo_count>\par
0\par
\par
> <pubchem_isotopic_atom_count>\par
0\par
\par
> <pubchem_component_count>\par
1\par
\par
> <pubchem_cactvs_tauto_count>\par
2\par
\par
> <pubchem_conformer_id>\par
000147e300000001\par
\par
> <pubchem_mmff94_energy>\par
36.7673\par
\par
> <pubchem_feature_selfoverlap>\par
35.579\par
\par
> <pubchem_shape_fingerprint>\par
11401426 45 18260553307406765666\par
114248 4 17240204322002096519\par
11796584 16 14273456968540553341\par
12119455 92 14764631906184944891\par
12251169 10 10519981556612143058\par
12916748 109 18412821387272144145\par
13549 16 18040432204717855551\par
13760787 19 17632582634460640875\par
14252887 29 10447651335124814696\par
14289901 80 15051736391172755097\par
14911166 2 18333734598038594579\par
14943859 89 18343021073109757667\par
14993402 34 18342739606986654037\par
15375358 24 18040719134751314698\par
18186145 218 18273217495099091772\par
187816 3 18113053826682582410\par
200 152 15647050482311101370\par
20279233 1 17531243933668359362\par
20645476 183 18201439142813649282\par
20645477 70 17240475949025291798\par
20671657 53 16515401871921383401\par
20871999 31 18190182286886346783\par
22485316 2 16877664560694194926\par
22854114 59 13830133901347829345\par
231179 274 17704079516227921887\par
23402539 116 18334866000183541910\par
23402655 69 18263657298258640629\par
23559900 14 18187082824564953960\par
2748010 2 17975141941761671595\par
366044 4 18411421700090251331\par
4047638 21 18131068225450539946\par
42 15 8502376624236592604\par
474 4 17130982062683486764\par
4990 188 18040433304324396567\par
\par
> <pubchem_shape_multipoles>\par
278.21\par
9.36\par
1.4\par
0.87\par
2.26\par
-1.75\par
-2.47\par
3.49\par
-2.99\par
1.11\par
-4.43\par
-0.42\par
1.98\par
-4.33\par
\par
> <pubchem_shape_selfoverlap>\par
562.504\par
\par
> <pubchem_shape_volume>\par
162.1\par
\par
> <pubchem_coordinate_type>\par
2\par
5\par
255\par
\par

y la primera linea esta de mas. Y el /par tambien esta de mas en todas las lineas y hasta en el nombre del archivo.

Como puedo arreglar esto?

 Perfil Email  
Mostrar mensajes previos:  Ordenar por  
 [ 8 mensajes ] 
Nuevo tema Responder al tema

Saltar a:  


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC - 6 horas
Traducción al español por Huan Manwë
phpBB SEO