Estou tentando criar um arquivo de dicionário a partir de várias páginas da Web que encontrei online. O dicionário indexa palavras-chave para que possam ser facilmente encontradas no modo de pesquisa. As informações na página da web são divididas em seções, cada uma com um ID exclusivo. Por exemplo:
<div id="word-2857">Andronicus, Titus . . .
O problema é que existem links de referência em outro texto para outras palavras escritas como:<a href="#word-2857"><i>see Titus Andronicus</i></a>
Portanto, ao criar um arquivo de dicionário (para Goldendict), as referências a outras palavras devem ser escritas como:<a href="entry://headword">text to display</a>
Desde que criei os headwords word-2857 em vez de Andronicus, Titus é bastante inútil, o que eu quero fazer (finalmente) é substituir em lote os links para todas as palavras (há cerca de 10.000 delas). Quero dizer, quero substituir todos os links de ID pelo cabeçalho correspondente. <a href="#word-2857"><i>see Titus Andronicus</i></a>
Deve se tornar<a href="entry://Andronicus, Titus">see Titus Andronicus</a>
Já tenho uma lista de todas as palavras que quero substituir pelo que quero substituí-las. O problema é que usando o Notepad++ só posso fazer uma substituição única por vez. Existem mais de 10.000 palavras e isso levará muito tempo. Por favor, ajude a explicar como isso pode ser feito facilmente.
Obrigado
Responder1
OK, aqui está minha solução. Copie todas as suas coisas do Notepad++ para uma nova pasta de trabalho do Excel. Tem que estar na Plan1. Copie todos os itens "Localizar" listados na Coluna A da Planilha2. Coloque os itens "Substituir" correspondentes na Coluna B da Planilha2. Não há cabeçalhos na Planilha2, pois ele também pesquisará e substituirá os valores do cabeçalho (a menos que você modifique o intervalo "r" no código a seguir para começar em A2).
Execute o seguinte script:
Sub FindReplaceAll()
Dim FindString, ReplaceString As String
Dim r As Range
Set r = Sheet2.Range("A1")
Do While Not r.Value = 0
FindString = r.Value
ReplaceString = r.Offset(0, 1).Value
Sheet1.Cells.Replace What:=FindString, Replacement:=ReplaceString, LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Set r = r.Offset(1, 0)
Loop
MsgBox "Done!"
End Sub
Isso deve pesquisar e substituir todas as suas entradas, uma por uma. Quando terminar, você pode copiá-lo de volta para o Notepad++. Ele irá parar na primeira linha vazia, portanto, certifique-se de localizar/substituir linhas contínuas.
Caso você esteja enferrujado com macros/scripts do Excel, no Excel, pressione alt + F11, clique com o botão direito no VBAProject na árvore à esquerda e selecione Inserir> Módulo. Cole o código na nova caixa que aparece e aperte o botão play (F5).
Espero que isso ajude, boa sorte!