Hallo iedereen.
Voor de achtergrondinformatie, ik heb nooit leren programmeren in Delphi via een tutorial. Ik ben bezig in een boek over C++, om dat degelijk onder de knie te krijgen, maar Delphi heb ik à la trial&error geleerd. Code die ik plaats kan dus eventueel niet optimaal/gestructureerd/.. zijn. Ik gebruik Delphi gewoon kleine applicaties mee te maken als ik even zin heb.
Delphi is que structuur ook nog altijd redelijk verschillend aan C++, dus aan die structuur heb ik niet zoveel.
Anyway,
De laatste tijd ben ik dus een beetje aan het spelen met textmanipulatie. Dit omdat ik het simpelweg leuk vind om mee bezig te zijn, het kan nooit kwaad om te leren.Nu om toch niet zomaar bezig te zijn, bedacht ik een soort van projectje om rond te werken om mezelf meer te leren over textmanipulatie. In de plaats van gewoon text, dacht ik dat het me wel leuk leek om HTML te gaan manipuleren via Delphi, voor als ik bijvoorbeeld op verschillende pagina's eenzelfde iets wil aanpassen. Zo leer ik op een nuttige manier.
Maarnu, deze tekstmanipulatie blijkt bij mij nooit echt goed te werken. Zo probeerde ik iets te maken dat van alle vormen: href="/blablabla.bla", de volledige website toevoegde, zo dus: href="www.blablabla.nl/blablabla.bla". Hiervoor produceerde ik het volgende:
Nu, wanneer ik een website source invoerde, waarbij dit patroon voorkwam, blokkeerde het programma gewoon. De bron van de website word ingevoerd in een Memo, waarvan de inhoud wordt opgeslagen in een string, deze kan vrij lang oplopen. Ik dacht dat het daar aan lag, maar toen ik het testte met de minimum input om het te laten werken, blokkeerde hij ook al. Om het te testen wou ik de bron ingevoerd in de memo onmiddelijk verplaatsen met de nieuwe bron.
Ik roep het zo aan:
Iemand die weet waar het hier mis gaat?
Ik heb er al over nagedacht om de hele bron in een array van strings te plaatsen, bij het reconstueren van de code zou deze zeer onoverzichtelijk worden, maar dat maakt me atm nog niet veel uit. Het probleem is dat ik geen idee heb hoe ik dat zou doen.
Stel dat het nu een hele lange source is, (bijvoorbeeld die van de Tweaker.net frontpage, of dergelijke)
zou alles in 1 string plaatsen dan niet verschrikkelijk traag gaan?
Een kleine zet in de juiste richting zou al hard geapprecieerd worden!
[Ik heb nog andere dergelijke dingetjes die niet lukken, alles op z'n tijd
]
Voor de achtergrondinformatie, ik heb nooit leren programmeren in Delphi via een tutorial. Ik ben bezig in een boek over C++, om dat degelijk onder de knie te krijgen, maar Delphi heb ik à la trial&error geleerd. Code die ik plaats kan dus eventueel niet optimaal/gestructureerd/.. zijn. Ik gebruik Delphi gewoon kleine applicaties mee te maken als ik even zin heb.
Delphi is que structuur ook nog altijd redelijk verschillend aan C++, dus aan die structuur heb ik niet zoveel.
Anyway,
De laatste tijd ben ik dus een beetje aan het spelen met textmanipulatie. Dit omdat ik het simpelweg leuk vind om mee bezig te zijn, het kan nooit kwaad om te leren.Nu om toch niet zomaar bezig te zijn, bedacht ik een soort van projectje om rond te werken om mezelf meer te leren over textmanipulatie. In de plaats van gewoon text, dacht ik dat het me wel leuk leek om HTML te gaan manipuleren via Delphi, voor als ik bijvoorbeeld op verschillende pagina's eenzelfde iets wil aanpassen. Zo leer ik op een nuttige manier.
Maarnu, deze tekstmanipulatie blijkt bij mij nooit echt goed te werken. Zo probeerde ik iets te maken dat van alle vormen: href="/blablabla.bla", de volledige website toevoegde, zo dus: href="www.blablabla.nl/blablabla.bla". Hiervoor produceerde ik het volgende:
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
| //Adds the full website name to the tags where needed. // for PHP files for example function AddFullSiteName(siteName: string; siteSource: string): string; begin siteName := 'www.' + siteName; while AnsiContainsText(siteSource, 'href=''/') do begin AnsiReplaceText(siteSource, 'href=''/', ('href=''' + siteName + '/')); AnsiReplaceText(siteSource, 'href="/', ('href="' + siteName + '/')); end; result := siteSource end; |
Nu, wanneer ik een website source invoerde, waarbij dit patroon voorkwam, blokkeerde het programma gewoon. De bron van de website word ingevoerd in een Memo, waarvan de inhoud wordt opgeslagen in een string, deze kan vrij lang oplopen. Ik dacht dat het daar aan lag, maar toen ik het testte met de minimum input om het te laten werken, blokkeerde hij ook al. Om het te testen wou ik de bron ingevoerd in de memo onmiddelijk verplaatsen met de nieuwe bron.
Ik roep het zo aan:
Delphi:
1
| mmoSiteSource.Text := AddFullSiteName(edtSiteName.Text, mmoSiteSource.Text); |
Iemand die weet waar het hier mis gaat?
Ik heb er al over nagedacht om de hele bron in een array van strings te plaatsen, bij het reconstueren van de code zou deze zeer onoverzichtelijk worden, maar dat maakt me atm nog niet veel uit. Het probleem is dat ik geen idee heb hoe ik dat zou doen.
Stel dat het nu een hele lange source is, (bijvoorbeeld die van de Tweaker.net frontpage, of dergelijke)
zou alles in 1 string plaatsen dan niet verschrikkelijk traag gaan?
Een kleine zet in de juiste richting zou al hard geapprecieerd worden!
[Ik heb nog andere dergelijke dingetjes die niet lukken, alles op z'n tijd