elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ¿Cómo extraer texto desde una palabra a otra?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo extraer texto desde una palabra a otra?  (Leído 1,442 veces)
Cergath


Desconectado Desconectado

Mensajes: 339



Ver Perfil
¿Cómo extraer texto desde una palabra a otra?
« en: 29 Mayo 2015, 22:45 pm »

Hola,

Tengo una lista que va así:

Citar
...
...
..
TY  - JOUR
AN  - WOS:000207966700012
DA  - Jul-Sep
J2  - Acta Bioquim. Clin. Latinoam.

KW  - CARDIAC TROPONIN-I;
ACUTE MYOCARDIAL-INFARCTION;
BRAIN NATRIURETIC;
PEPTIDE;
ARTERY-BYPASS-SURGERY;
ST-SEGMENT-ELEVATION;
CREATINE-KINASE-MB;
DEPARTMENT PATIENT SATISFACTION;
ACUTE;
PULMONARY-EMBOLISM;
CRITICALLY-ILL PATIENTS;
STAGE RENAL-DISEASE

LA  - Spanish
M1  - 3
M3  - Article
N1  - ISI Document Delivery No.: V17WG
Times Cited: 0
Cited Reference Count: 218
Cited References:

....
...
...
..

Necesito colocar el ";" (punto y coma) como se ve en el ejemplo únicamente en los items que están en KW exceptuando el último de ellos, justamente como se ve en el ejemplo. ¿Cómo podría lograrlo?... El problema es que son más de un millón de registros por lo que necesito algo automático :/

Siempre es de KW a LA, y todas esas (que están como KW - (con el guión)) son como categorías, entonces sería hacer el punto y coma para la categoría KW, exceptuando su último item...

Con excel podría hacer algo como =A1&";" pero ciertamente no me sirve porque lo aplicaría a tooodo, y solo necesito KW exceptuando su último... :( no se me ocurre qué hacer, ¿algún consejo?


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.710


WOS & Khan & Calero LDN


Ver Perfil WWW
Re: ¿Cómo extraer texto desde una palabra a otra?
« Respuesta #1 en: 29 Mayo 2015, 22:54 pm »

Pues no olvides de que en Excel existe el condicional IF.

Podrías poner como esta el archivo actual unas cuantas lineas, y debajo como quieres que se modifique? No logro comprender lo que quieres,


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Cergath


Desconectado Desconectado

Mensajes: 339



Ver Perfil
Re: ¿Cómo extraer texto desde una palabra a otra?
« Respuesta #2 en: 29 Mayo 2015, 23:11 pm »

Hola,

Muchas gracias por tu consejo @Shell Root, voy a intentarlo,

Respecto al archivo, no puedo adjuntarlo todo, es un .txt de más o menos 50 megas, pero adjunto una pequeñísima porción, y cómo debería quedar (en otro archivo). Yo mismo coloreé las "categorías" en negrilla para que sea más amigable a la vista...

El problema:
https://docs.google.com/document/d/1_OJk-6ugtBSSmWziaVERtx-DduLEyr5nyyDTvwxNzok/edit?usp=sharing

Como debería verse:
https://docs.google.com/document/d/1H1C1awK1N26qghm164qDAMyLDq5KlYMBbxsUT9IaYnA/edit?usp=sharing

Después de la categoría KW siempre va LA, por lo que podría funcionar como punto de referencia...
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.710


WOS & Khan & Calero LDN


Ver Perfil WWW
Re: ¿Cómo extraer texto desde una palabra a otra?
« Respuesta #3 en: 29 Mayo 2015, 23:20 pm »

Oka es fácil ya que tiene un patron haré una pequeña macro para que la ejecutes en Excel. Espera un momento.
« Última modificación: 29 Mayo 2015, 23:57 pm por Shell Root » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Cergath


Desconectado Desconectado

Mensajes: 339



Ver Perfil
Re: ¿Cómo extraer texto desde una palabra a otra?
« Respuesta #4 en: 29 Mayo 2015, 23:45 pm »

@Shell Root , no sé cómo agradecértelo ;-) estoy terminando mi trabajo de tesis en bibliometría y quería sacar un indicador con esos datos... En serio muchas pero muchas gracias por tu ayuda. Ojalá hubiera un botoncito de reputación como mínimo
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.710


WOS & Khan & Calero LDN


Ver Perfil WWW
Re: ¿Cómo extraer texto desde una palabra a otra?
« Respuesta #5 en: 29 Mayo 2015, 23:58 pm »

No es nada raro, hasta se puede optimzar, pero nah...
Código
  1. Public Sub PoC()
  2.  
  3.    Dim Row As Integer: Row = 1
  4.    Dim DentroDeKW As Boolean: DentroDeKW = False
  5.  
  6.    Sheets("Hoja1").Select
  7.    Do While Range("A" & Row).Value <> Empty
  8.        If Mid(Range("A" & Row).Value, 1, 2) = "KW" Then
  9.            DentroDeKW = True
  10.        End If
  11.  
  12.        If Mid(Range("A" & Row + 1).Value, 1, 2) = "LA" Then
  13.            DentroDeKW = False
  14.        End If
  15.  
  16.        If DentroDeKW = True Then
  17.            Range("A" & Row).Value = Range("A" & Row).Value & ";"
  18.        End If
  19.  
  20.        Row = Row + 1
  21.    Loop
  22.  
  23. End Sub
  24.  

Resultado:
Código:
TY  - JOUR
AN  - WOS:000207966700012
DA  - Jul-Sep
J2  - Acta Bioquim. Clin. Latinoam.
KW  - CARDIAC TROPONIN-I;
ACUTE MYOCARDIAL-INFARCTION;
BRAIN NATRIURETIC;
PEPTIDE;
ARTERY-BYPASS-SURGERY;
ST-SEGMENT-ELEVATION;
CREATINE-KINASE-MB;
DEPARTMENT PATIENT SATISFACTION;
ACUTE;
PULMONARY-EMBOLISM;
CRITICALLY-ILL PATIENTS;
STAGE RENAL-DISEASE
LA  - Spanish
M1  - 3
M3  - Article
N1  - ISI Document Delivery No.: V17WG
Times Cited: 0
Cited Reference Count: 218
Cited References:
    Agewall S, 2003, CLIN BIOCHEM, V36, P27, DOI 10.1016/S0009-9120(02)00417-4
    Akhtar S, 2004, CRIT CARE MED, V32, pS126, DOI 10.1097/01.CCM.0000121576.73871.2D
    Akkerhuis KM, 2002, CIRCULATION, V105, P554, DOI 10.1161/hc0502.104278
    Alpert JS, 2000, J AM COLL CARDIOL, V36, P959
    Altinier S, 2001, CLIN CHIM ACTA, V311, P67, DOI 10.1016/S0009-8981(01)00562-9
[Anonymous]
TY  - JOUR
AN  - WOS:000207966700012
DA  - Jul-Sep
J2  - Acta Bioquim. Clin. Latinoam.
KW  - CARDIAC TROPONIN-I;
ACUTE MYOCARDIAL-INFARCTION;
BRAIN NATRIURETIC;
PEPTIDE;
ARTERY-BYPASS-SURGERY;
ST-SEGMENT-ELEVATION;
CREATINE-KINASE-MB;
DEPARTMENT PATIENT SATISFACTION;
ACUTE;
PULMONARY-EMBOLISM;
CRITICALLY-ILL PATIENTS;
STAGE RENAL-DISEASE
LA  - Spanish
M1  - 3
M3  - Article
N1  - ISI Document Delivery No.: V17WG
Times Cited: 0
Cited Reference Count: 218
Cited References:
    Agewall S, 2003, CLIN BIOCHEM, V36, P27, DOI 10.1016/S0009-9120(02)00417-4
    Akhtar S, 2004, CRIT CARE MED, V32, pS126, DOI 10.1097/01.CCM.0000121576.73871.2D
    Akkerhuis KM, 2002, CIRCULATION, V105, P554, DOI 10.1161/hc0502.104278
    Alpert JS, 2000, J AM COLL CARDIOL, V36, P959
    Altinier S, 2001, CLIN CHIM ACTA, V311, P67, DOI 10.1016/S0009-8981(01)00562-9
[Anonymous]
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Cergath


Desconectado Desconectado

Mensajes: 339



Ver Perfil
Re: ¿Cómo extraer texto desde una palabra a otra?
« Respuesta #6 en: 30 Mayo 2015, 00:13 am »

Hola,

Muchas gracias!, funciona perfectamente.

Edit: Todo lo que mencioné abajo ya puedo solucionarlo entonces lo he eliminado ;) , el problema que tengo y que no sé cómo resolver es el de desbordamiento :(

Edit 2: Ya pude, reemplacé Integer por Long :D

¡Muchas gracias @Shell Root! eres lo mejor :3
« Última modificación: 30 Mayo 2015, 01:23 am por Cergath » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como puedo extraer el texto de una imagen. URGENTE!!!!!
Programación Visual Basic
augusto_pr 2 6,966 Último mensaje 3 Abril 2007, 21:44 pm
por malgia
Como modificar una palabra por otra mas larga en V Basic
Ingeniería Inversa
ELDORADOV8 4 2,936 Último mensaje 18 Junio 2008, 22:58 pm
por Shaddy
Extraer Palabra de un String con delimitadores
PHP
spysecurityca 4 2,741 Último mensaje 3 Septiembre 2014, 16:51 pm
por WHK
Como extraer multiples datos de un archivo de texto[AYUDA]
Programación C/C++
Rastreator1010 0 948 Último mensaje 16 Octubre 2014, 20:17 pm
por Rastreator1010
extraer palabra de string
.NET (C#, VB.NET, ASP)
PETTETE 5 2,574 Último mensaje 19 Septiembre 2017, 14:51 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines