JeanWM Posted September 13, 2007 Posted September 13, 2007 Wat is er verkeerd in de formule: Middle( fileString; Position(fileString; start delimiter;1;1) + startplace after start delimiter; Position(fileString; end delimiter;1;1) - Position(fileString; end delimiter;1;1) - endplace after end delimiter) waar fileString een tekst is, start delimiter een ":" is end delimiter een "." is. Berekening is result text. Quote
0 BDK Posted September 13, 2007 Posted September 13, 2007 Middle( fileString; Position(fileString; start delimiter;1;1) + startplace after start delimiter; Position(fileString; end delimiter;1;1) - Position(fileString; end delimiter;1;1) - endplace after end delimiter) ik weet niet wat "+ startplace after delimiter" en "- endplace after end delimiter" doen, dus dat zou het probleem kunnen zijn, maar in elk geval zou Position(fileString; END delimiter;1;1) - Position(fileString; END delimiter;1;1) moeten zijn: Position(fileString; END delimiter;1;1) - Position(fileString; START delimiter;1;1) wellicht? groet, bdk Quote
0 JeanWM Posted September 13, 2007 Author Posted September 13, 2007 ik weet niet wat "+ startplace after delimiter" en "- endplace after end delimiter" doen... Die bepalen waar de parsing dient te beginnen 'na' de start delimiter en dient te stoppen 'voor' de delimiter. Als je start delimiter een ":" is en je startplace is +1, zal de parsing beginnen 1 character ná de ":". Als je end delimiter een "." is en je endplace is -1, zal de parsing stoppen 1 character vóór de ".". Of dat is toch de bedoeling, en dat gebeurt niet. Quote
0 Captain Haddock Posted September 13, 2007 Posted September 13, 2007 Ha Jean, als ik het goed begrijp wil je een functie definiëren die de quote oplevert tussen : en . Dat doe je op deze manier: Let ( [ $start_delimiter= Position(filestring;":";1;1)+1; $end_delimiter=Position(filestring;".";1;1) ]; Middle(filestring;$start_delimiter;$end_delimiter-$start_delimiter) ) Snap je hem zo? Quote
0 JeanWM Posted September 13, 2007 Author Posted September 13, 2007 In de 7+ doe ik het inderdaad zo, maar de meer algemene formule blijft nog altijd; als je een n-th waarde uit een x-delimited string wilt halen: Middle ( text , Position ( text , "x" , 1 , n - 1 ) + 1 , Position ( text (& "x") , "x" , 1 , n ) - Position ( text , "x" , 1 , n - 1 ) - 1 ) Dat werkt best, goed enz. in lower 7. Indien we dat nu over copieren naar/toepassen in een 7+ toepassing werkt het niet bij sommige studenten. We proberen te achterhalen waar dat itsie pitsie verschil kan zitten. Quote
0 Captain Haddock Posted September 13, 2007 Posted September 13, 2007 Ah, 't verbaasde me al dat je 't niet wist. Heb ik toch de goeie Jean voor me. Raar verhaal. Wat precies gaat er mis bij die sommige studenten? Quote
0 JeanWM Posted September 13, 2007 Author Posted September 13, 2007 Key-word is inderdaad sommige en dat maakt het niet gemakkelijker. Wat we als resultaat kregen (ik zet de delimiter hier tussen aanhalingstekens voor de duidelijkheid): Eentje heeft - ":" parsed string "." Eentje heeft - parsed string "." Een derde heeft helemaal niks. De zeven anderen (en ik) verkrijgen het juiste resultaat. Vandaar mijn benadering in de posts om eerst met de syntax van de formule te beginnen, omdat andere formules wél zonder problemen bij iedereen hetzelfde resultaat geeft... Iedereen is op FM 8.5A laatste versie. Allen hebben laptops met Win XP en twee met Vista (ik ben de enige die nog lekker met Win 2000 en WS 2003 zit. De problemen zijn onder XP. Toestellen zijn een HP, een Acer en een Dell. Maar er zijn anderen die dezelfde computers hebben en géén probleem. Via het netwerk heb ik al hun formule gecopieerd op mijn toestel, en dan loopt alles goed. Copieer ik terug naar hun toestel, zie resultaat boven. Bij eentje hebben we FM al opnieuw geinstalleerd, zelfde resultaat. Ik ben aan het einde van mijn ideeen, wat dan doorgaans het moment is om het eens op het forum te gooien. En het gebeurt ook wel eens dat ik tussen vraag en antwoord zelf op de oplossing val...maar deze keer niet Voor zover ik het kan bekijken heeft het niet veel meer met FM te maken. Quote
0 AvD Posted September 14, 2007 Posted September 14, 2007 Jean, zet eens voor en na elke komma een spatie en vertel eens wat er dan gebeurt. Voor het (misschien) waarom: hoe we ooit iemand uit het gekkenhuis gered hebben. Quote
0 JeanWM Posted September 14, 2007 Author Posted September 14, 2007 Mijn beste André, waarom denk je dat - we al je Tips bijhouden ? - we die keurig in een FM bestandje droppen ? - we een zoekroutine hebben op 'key-word' ? - we onmiddellijk gelijksoortige en - achtige tips kunnen terug vinden ? - verwijzingen naar tips binnen tips aan een GTRR scriptje hangen ? - we je tips ook daadwerkelijk lézen ? - we je tips ook toepassen waar mogelijk ? - een student met Zuid-Afrikaanse roots die tips heeft omgezet in lokale Maya taal ? - bij een mogelijk probleem studenten 'AVD' raadplegen ? ... om uit een gekkenhuis te blijven... Quote
0 AvD Posted September 14, 2007 Posted September 14, 2007 Dat was het dus niet?? Terug naar het gekkenhuis dan! Verdraaid nog aan toe! PS Ben wel serieus onder de indruk van wat met die tips gebeurt! Quote
0 JeanWM Posted September 14, 2007 Author Posted September 14, 2007 In de English class gebruiken ze McMillan en Merriam Webster.... In de database klas gebruiken we 'AVD'. De meeste DB cursussen beginnen met het 'maken' van een 'adressenbestand'. Boooooooooring. Ik gaf ze enkele jaren geleden een beginnend project: zorg ervoor dat we ten allen tijde de gevraagde/nodige informatie kunnen vinden. Hier is data. Ik plug die wel even in een XL bestandje, kwestie van de import te oefenen. Dat beginnend bestand wordt ieder jaar doorgegeven naar de volgende groep die er verder aan werkt, zaken toevoegen, veranderen, aanpassen, technieken proberen, maar de basis is en blijft de AVD tips. Ik hoop dat we geen copyright molesteren daarmee Quote
Question
JeanWM
Wat is er verkeerd in de formule:
Middle(
fileString;
Position(fileString; start delimiter;1;1) + startplace after start delimiter;
Position(fileString; end delimiter;1;1) -
Position(fileString; end delimiter;1;1) - endplace after end delimiter)
waar fileString een tekst is,
start delimiter een ":" is
end delimiter een "." is.
Berekening is result text.
10 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.