Jump to content
  • 0

opschonen aangeleverde database met 400 velden per record


rb

Question

Posted

Dag mensen,

ik krijg een database FM5 aangeleverd die is vervaardigd door een uitvoer van Lotus naar FM (ik weet niet hoe dit gedaan wordt, ik ontvang alleen de FM5).

gemddeld ca. 350 records met ca. 400 tot 600 velden per record.

 

De invoer (voornamelijk vrij in te voeren tekst) in de velden is redelijk vervuild en ik wil die opschonen. bij voorkeur automatisch.

Vervuiling: bestaat uit o.a.

HTML codes (

etc)

te veel returns

handmatige afbrekingen

 

Er is tevens een lijst met woordn die standaard gecontroleerd moet worden op verkeerde spelling.

 

 

ik heb de FM5 naar FM7 geconverteerd en probeer met scripts nu de invoer via zoek en vervang instructies op te schonen. Niet ideaal.

Klopt het dat alleen de velden in de actiev layout worden gezocht? Bij 00 velden past niet alles op 1 layout en een nieuwe layout aanmaken is een enorm karwei.

 

Is er een slimmere manier om e.e.a. op te schonen?

Is er wellicht een manier zodat ik zelf om de Lotus dbasekan vragen en op die manier zelf eenimport kan verzorgen naar FM toe?

 

elke tip is welkom. bedankt

 

r

9 answers to this question

Recommended Posts

  • 0
Posted

Je kan nu je cursor in een veld zetten en Records > Replace Field Contents kiezen.

Hier kan je een calculatie ingeven en deze wordt uitgevoerd op de huidige set records.

 

Het is niet "elke tip", maar wel handig vind ik :wink:

 

Ik zou hier dan bij voorbaat geteste correctie-calculaties inkleven, of er een speciale hoop buttons voor maken (met allerlei correctie-scripts) die je tijdelijk op elke layout kan plaatsen.

 

:!: Ik heb hier 0 ervaring mee, het zijn maar ideetjes :wink:

  • 0
Posted

Ik denk dat Gido inderdaad de goede tip gegeven heeft: Records > Replace Field Contents. Maar dit lijkt me wel een titanenwerk in dit geval.

 

Alles hangt natuurlijk af welke en hoeveel vervuiling in welke velden voorkomt. Ik zou wel eens zo'n paar records met 4 à 600 tekstvelden willen zien om een idee te hebben.

 

Op het eerste gezicht zou ik zelfs durven denken om de hele zaak te exporteren in een TXT formaat (tab separated) en de hele zaak geheel of gedeeltelijk op te ruimen met een tekstverwerker.

 

Heb ook al te maken gehad met dergelijke opruimingen maar toch niet op die schaal.

 

Misschien zit ik er helemaal naast; sorry dan! :oops:

  • 0
Posted

Indien de vervuiling veel overeenkomsten heeft,maak een script aan.

Loop per veld en maak een geneste substitute voor de vervuilingen per record,je laat je pc beter het werk doen. :wink:

  • 0
Posted

allen bedankt.

 

er zit geen systeem in de vervuiling. Mijn klant heeft 160 (ja! en dat is geen uitzondering) verschillende personen de database laten invullen. Elk heeft richtlijnen ontvangen maar (uiteraard) niet volledig opgevolgd.

 

Ik heb momenteel ca. 12 scripts voor veelvoorkomende wijzigingen (zoals verwijderen van

en driedubbele returns etc).

Ik doe dit nu via een script>perform find/replace>all fields&all records. De specify-calculaties staan dan vol met die zoek en vervang tekstjes.

 

Maar deze find alleen de records in de layout.

 

ik zal verder zoeken. bedankt in elk geval!

  • 0
Posted

Je hebt ook nog de sriptstap Replace contents (Vervang inhoud?).

Deze kan de inhoud van een veld over de gevonden reeks vervangen door een berekening.

Als je gevonden reeks alle records is, kan je daarmee in elk geval alle records bewerken.

 

HTH

 

rmw

  • 0
Posted

rmw

 

is er een manier waarop ik kan zeggen:

- ga naar het 1e veld (zonder de naam te definieren)

- voer script 1 t/m xx uit met replace fieldcontents door scriptberekening

- doe dit tot het laatste (=veld 441) veld

 

erg bekend met script en bijbehorende commandos ben ik (nog) niet. en wat ik tot nu toe heb was al een aardige ontdekkingsreis.

  • 0
Posted

Dat is eigenlijk wat ik gepost had,je zal wel het eerste veld moeten definieren,maar voor wat je nodig hebt zal het wel lukken met scripten.Je zegt het immers zelf al.

Ga naar veld

Loop

Vervang inhoud(berekening)

Ga naar volgend veld

exit loop if....

End Loop

  • 0
Posted

Zorg voor een goede tabvolgorde.

Eerste veld moet je wel benoemen.

Naar volgende velden middels GoToNext Field

 

pseudo code uit losse pols:

ga naar eerste record
ga naar veld1 (benoemen)
gCounter=1

Loop

 Loop
   verzameling scripts
   Next Record (stop bij laatste)
 End Loop

ga naar eerste record
ga naar volgend veld 
gCounter=gCounter+1  (met setfield)
exit Loop als gCounter=442

End Loop

[/code]

  • 0
Posted
Eerste veld moet je wel benoemen.

 

Niet als je eerste script stap 'Ga naar volgend veld' is. Als er geen veld geselecteerd is zal het eerste veld uit de tab-volgorde worden gekozen.

 

Om te voorkomen dat het script van Arnoud misloopt als er toevallig meer of minder velden op de layout staan, kan je na de eerste 'Ga naar volgend veld' de naam van het actieve veld opvragen met de Get() functies en opslaan in een globaal. De test om uit de loop te komen kan je dan vervangen door elke keer te controleren of de naam van het actieve veld gelijk is aan je opgeslagen start-veld. De tab-volgorde start namelijk opnieuw als je het laatste veld gehad hebt.

 

 

rmw

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...