Somda Invoer Hulp 1.0.3
De
invoer van spots via het invoervenster op www.somda.nl
dient volgens het voorgeschreven invoerformaat te worden ingevoerd.
Somda Invoer Hulp is een hulpprogramma bij het invoeren van spots op de
website van Somda. Ik heb dit programma geschreven
omdat ik nogal eens de posities verkeerd had. En soms maakte ik ook fouten in
de invoer van bepaalde materieelnummers, zoals ‘6601’ in plaats van ‘ERS6601’.
Na de eerste opzet heb ik het programma uitgebreid met meer functionaliteit.
Features:
Laatste
wijzigingen in versie 1.0.1:
Laatste
wijzigingen in versie 1.0.2:
Laatste
wijzigingen in versie 1.0.3:
Vereisten
Somda Invoer Hulp vereist dat het MicrosoftTM
.Net Framework 1.1 is geïnstalleerd. Mogelijk werkt
het programma ook met nieuwere versies van het framework.
Het
framework kan worden gedownload
vanaf de site van MicrosoftTM.
Hoe
werkt Somda Invoer Hulp?
Hulp
bij samenstellingen met rijtuig stamnummers
Zoals
hierboven in stap 6 is aangegeven dienen bij de invoer van een spot van een
samenstelling met rijtuig stamnummers aangegeven te worden waar en hoeveel locs
er in de samenstelling zitten. Om de keuze hiervan te vergemakkelijken is in
het menu Invoer een aantal voorkeursinstellingen ondergebracht. Door in dit
menu de regel die bij de spots past te klikken, worden de vinkjes in stap 6
automatisch ingesteld.
o Ctrl+Shift+S: Treinstellen of getrokken trein
zonder rijtuig/stamnummers
o Ctrl+Shift+G: Getrokken
trein met loc(s) voorop
o Ctrl+Shift+D: Trek-duw
trein met loc achterop
o Ctrl+Shift+T: Trek-trek
trein met loc(s) voorop en loc achterop
o Ctrl+Shift+E: Gesleepte treinstellen
met loc(s) voorop
Keuzelijst
met nummers
Om
de invoer van bepaalde nummers te vereenvoudigen (moet er nu wel of niet NMBS
voorafgaand aan het nummer 2551 worden ingevoerd?) kunnen nummers uit een lijst
worden gekozen. De lijst wordt getoond door op de knop Lijst te drukken. De
eerste keer dat op deze knop wordt gedrukt, wordt de lijst ingelezen en
opgebouwd, dit kan eventjes duren.
Met
de velden Nummer en Serie kan een filter worden opgegeven waarop de lijst kan
worden gefilterd. De lijst wordt pas gefilterd nadat op de knop Filter is
gedrukt. Met de knop Wis wordt het filter gewist.
Met
het vinkje Toon Alles wordt aangegeven of alle nummers worden getoond, of
alleen de als ‘bijzonder’ gemarkeerde nummers.
Door
in de lijst een regel te selecteren en op de knop Kies te drukken, of op te
selecteren regel te dubbelklikken wordt het nummer van de gekozen regel aan de
samenstelling toegevoegd. Automatisch wordt een plusteken als scheiding tussen
de reeds ingevoerde samenstelling toegevoegd. (Als er
al een plusteken stond, wordt er niet nog een tussengevoegd.)
Als
extra hulp bij het invoeren zijn de complete samenstellingen van het
blokkendoos driewagenstel van het spoorwegmuseum en
de vijf TEE-rijtuigen van de stichting TEE ook in de
lijst opgenomen.
Door
de recente materieelwijzigingen, kan deze lijst verouderd raken.
De
basis voor de lijst is een xml bestand (“Materieel.xml”). Dit bestand kan naar behoefte worden
aangepast om nieuwe materieelnummers toe te voegen, of afgevoerde
materieelnummers te verwijderen. Enige kennis van xml
is wel vereist, want ik heb nog geen beheersfunctie hiervoor gemaakt. De opbouw
van dit bestand staat verderop in dit document beschreven.
Keuzelijst
met namen
Tegenwoordig
is het weer in om treinen namen te geven. Soms heb je bij het spotten wel de
naam, maar niet het nummer kunnen lezen. Dan is het wel handig om aan de hand
van de naam het nummer te achterhalen. Dit kan door op de knop Naam achter de
samenstelling te drukken. Net als bij de keuzelijst met nummers, verschijnt een
lijst met namen en nummers. Om een bepaalde naam te zoeken kan de naam (of een
deel van de naam) worden ingevuld in het veld Naam en na het drukken op de knop
Zoek wordt de lijst gefilterd op de nummers, waarvan
de naam deels overeenkomt met de ingevoerde naam.
Door
in de lijst een regel te selecteren en op de knop Kies te drukken, of op te
selecteren regel te dubbelklikken wordt het nummer van de gekozen regel aan de
samenstelling toegevoegd. Automatisch wordt een plusteken als scheiding tussen
de reeds ingevoerde samenstelling toegevoegd. (Als er
al een plusteken stond, wordt er niet nog een tussengevoegd.)
De
basis voor de lijst is een xml bestand (“Namen.xml”). Dit bestand kan naar behoefte worden aangepast
om nieuwe materieelnummers toe te voegen, of afgevoerde materieelnummers te
verwijderen. Enige kennis van xml is wel vereist,
want ik heb nog geen beheersfunctie hiervoor gemaakt. De opbouw van dit bestand
staat verderop in dit document beschreven.
Automatische
suggesties
Sommige
materieelnummers dienen te worden voorafgegaan door de maatschappijnaam, om
eventuele doublures met andere nummers te voorkomen. Wanneer en welke de
nummers door de maatschappijnaam dienen te worden voorafgegaan is niet altijd
even eenduidig, en een foute invoer is zo gemaakt.
Uiteraard
kan bij twijfel de bovenbeschreven keuzelijst met nummers gebruikt worden. Maar
het is makkelijker als dit automatisch kan worden gecontroleerd, en indien mogelijk ook automatisch kan worden hersteld. En dat
kan!
Als
er geen nummer doublures zijn, wordt een herkende foute invoer automatisch
hersteld. (Bijvoorbeeld van de NMBS reeks 77 kwamen aanvankelijk alleen de 7771
t/m 7790 in Nederland. Hierbij treden geen doublures met ander materieel op.
Toch moeten deze locs als NMBS7771 t/m NMBS7790 in Somda
ingevoerd te worden.)
Als
er wel doublures zijn (bijvoorbeeld 41 of NSM41) dan wordt bevestiging gevraagd
welk nummer bedoeld wordt.
Omdat
er soms wel en soms geen naam voor het nummer komt (zoals wel bij NSM41, maar
niet bij 273) worden overbodige maatschappijnummers voor een nummer automatisch
verwijderd.
Sommige
nummer doublures betreffen locs enerzijds en rijtuigstammen anderzijds (zoals
6601 en ERS6601). Omdat met de velden Rijtuigstam, Aantal locs voorop en Loc
achterop kan worden vastgesteld welk deel van de samenstelling een loc betreft
en welk deel een rijtuig stamnummer, kunnen ook fout ingevoerde locs
automatisch worden hersteld.
Deze
suggesties zijn aanvankelijk bedoeld als hulpmiddel om foute invoer te
verbeteren, maar het is ook heel handig om nog sneller spots in Somda Invoer Hulp in te voeren, doordat het programma er
zelf wel het juiste nummer van maakt.
Mocht
je na veelvuldig gebruik van dit programma toch eens handmatig spots in Somda moeten invoeren (bijvoorbeeld vanaf een plek waar je
dit programma niet bij de hand hebt), moet je er wel aan denken om de juiste
nummers te gebruiken!
De
basis voor de suggesties is een xml bestand (“Suggesties.xml”). Dit bestand kan naar behoefte worden
aangepast om nieuwe correcties toe te voegen, of overbodig geraakte correcties
te verwijderen. Enige kennis van xml en van reguliere
expressies is wel vereist, want ik heb nog geen beheersfunctie hiervoor
gemaakt. De opbouw van dit bestand staat verderop in dit document beschreven.
Omdat
er geen lijst van de suggesties wordt getoond, en de inhoud van het xml bestand door de gebruikte reguliere expressies niet
voor iedereen even leesbaar is, volgt hier een globaal overzicht van opgenomen
correcties:
Met
‘Correctie in’ in dit overzicht wordt dat diverse invoermogelijkheden worden
herkend en gecorrigeerd in de juiste notatie.
Enkele
herkende mogelijkheden voor het corrigeren van C9002 zijn: C 9002, mc 9002, mC9002, 9002.
Qua
blokkendozen is deze suggestielijst beperkt tot de Jaap en het elektrische stel
van het spoorwegmuseum, omdat deze regelmatig op pad zijn en worden gespot en
ingevoerd in Somda. De getrokken rijtuigen van andere
museumorganisaties zijn zeer weinig op de hoofdlijnen aan te treffen en vaak
worden dan alleen de locnummers ingevoerd en niet alle rijtuignummers.
Keuzelijst
met locaties
In Somda worden voor de spotlocaties de geldende afkortingen
gebruikt. Omdat niet alle afkortingen uit het hoofd te hoeven leren, is een
lijst met de meestgebruikelijke in Somda voor spotlocaties toegestane afkortingen met de
betekenissen opgenomen. Door de knop Locatie achter de locatie te drukken
verschijnt deze lijst. Om een bepaalde locatie te zoeken kan de afkorting of
naam (of een deel ervan) worden ingevuld in het velden Afkorting en Naam en na
het drukken op de knop Filter wordt de lijst gefilterd op de locaties, waarvan
de afkorting of naam deels overeenkomt met de ingevoerde afkorting en naam.
Door
in de lijst een regel te selecteren en op de knop Kies te drukken, of op te
selecteren regel te dubbelklikken wordt de afkorting van de gekozen regel aan
gekozen.
Daarnaast
is het ook mogelijk om ingevoerde locaties te controleren op geldigheid.
Hiervoor zijn drie modi beschikbaar (te kiezen in het menu):
De
basis voor de lijst is een xml bestand (“Locaties.xml”). Dit bestand kan naar behoefte worden
aangepast om nieuwe locaties toe te voegen, of overbodige locaties te
verwijderen. Enige kennis van xml is wel vereist,
want ik heb nog geen beheersfunctie hiervoor gemaakt. De opbouw van dit bestand
staat verderop in dit document beschreven.
Tekortkomingen
Ondanks
dat ik getracht heb zoveel mogelijk te ondersteunen, zal dit programma best
enkele beperkingen kennen. Bepaalde beperkingen betreffen ook beperkingen op Somda.
Zo
kunnen bij gebruik van rijtuig stamnummers maximaal drie locs voorop en
maximaal één loc achterop worden opgegeven.
Samenstellingen
van meer dan 10 delen worden door dit programma prima verwerkt, alleen weet ik
niet hoe Somda op posities van 11 en hoger reageert.
Maar dergelijke samenstellingen zijn dusdanig zeldzaam (goederenwagens worden
niet ingevoerd), dat dit zelden tot problemen zal leiden.
Bestandsformaten
Dit
onderdeel is alleen bedoeld voor kenners van xml die
de xml-bestanden wil aanpassen.
Voor
de opbouw van de betreffende bestanden verwijs ik deels naar de bijgeleverde
bestanden. Door daar in te kijken wordt al een hoop duidelijk, en hoef ik hier
niet alles te gaan zitten uitleggen ;-)
De
namen van de xml-tags zijn altijd in kleine letters.
Keuzelijst
met nummers: Materieel.xml
Om
niet elk nummer afzonderlijk op te hoeven nemen, bevat dit xml-bestand
reeksen, met een van-nummer en een tot-en-met-nummer. In de lijst in het programma wordt elk
tussenliggend nummer wel afzonderlijk getoond.
De
hele inhoud van dit bestand staat tussen de tags <matlijst> en </matlijst>.
Elk
element (een los nummer of een reeks) staat tussen de tags <reeks> en </reeks>. (Ja ook als het een los
nummer en geen reeks betreft, hebben de tags wel de naam reeks!)
Een
los nummer bestaat uit de door de volgende tags omsloten
waarden:
<van> het nummer (zoals
deze in Somda ingevoerd dient te worden).
<oms> een omschrijving
van het materieeltype. Dit veld wordt in de kolom Serie getoond.
<markeer> de waarde 1 als dit nummer
altijd moet worden getoond, of de waarde 0 als dit nummer alleen bij het
aanvinken van Toon Alles moet worden getoond.
Een
reeks bestaat uit de door de volgende tags omsloten
waarden:
<van> het eerste nummer
van de reeks (zoals deze in Somda ingevoerd dient te
worden).
<tot> het laatste nummer
van de reeks (zoals deze in Somda ingevoerd dient te
worden).
<oms> een omschrijving
van het materieeltype. Dit veld wordt in de kolom Serie getoond.
<markeer> de waarde 1 als dit nummer
altijd moet worden getoond, of de waarde 0 als dit nummer alleen bij het
aanvinken van Toon Alles moet worden getoond.
Keuzelijst
met namen: Namen.xml
De
hele inhoud van dit bestand staat tussen de tags <namenlijst> en </namenlijst>.
In
dit xml-bestand wordt voor elke naam een element
opgenomen.
Elk
element staat tussen de tags <namen> en </namen>.
Elke
element bestaat uit de door de volgende tags omsloten
waarden:
<naam> de naam van het
treinstel of locomotief.
<nummer> het nummer (zoals deze in Somda ingevoerd dient te worden).
<oms> een omschrijving
van het materieeltype. Dit veld wordt in de kolom Serie getoond.
Automatische
suggesties: Suggesties.xml
Dit
is het ingewikkeldste bestand, omdat hierin ook reguliere expressies worden
gebruikt. Als je hiermee bekend bent, levert dat grote voordelen op bij het
beheer van dit bestand, omdat er dan minder elementen te hoeven worden
opgegeven. Het nadeel is wel de vaak onleesbare expressies. Maar ja, elk nadeel
heeft zijn voordeel…
Zonder
gebruik te maken van reguliere expressies is het mogelijk om voor elke
mogelijke foute nummer een element op te nemen.
De
hele inhoud van dit bestand staat tussen de tags <suggestielijst> en </suggestielijst>.
In
dit xml-bestand wordt voor elke suggestie een element
opgenomen.
Elk
element staat tussen de tags <suggestie> en </suggestie>.
Elke
element bestaat uit de door de volgende tags omsloten
waarden:
<invoer> het foute invoer nummer, of
reguliere expressie, waarmee de ingevoerde materieelnummers worden vergeleken.
<uitvoer> het te corrigeren nummer, of
reguliere vervang expressie, waarmee de foutieve invoer vervangen dient te
worden
<wijzig> dit veld geeft aan wanneer
en hoe de foute invoer gewijzigd wordt.
De
mogelijke waarden voor het veld wijzig zijn (alleen
kleine letters):
nooit de invoer wordt nooit
gecorrigeerd, het veld uitvoer is dan niet nodig.
altijd de invoer wordt altijd
gecorrigeerd met de uitvoer.
vraag voor de correctie wordt een
vraag ter bevestiging gestel.
geenrijtuig de invoer wordt alleen gecorrigeerd als
het deel van de samenstelling niet een rijtuig stamnummer betreft.
rijtuig de invoer wordt alleen
gecorrigeerd als het deel van de samenstelling wel een rijtuig stamnummer
betreft.
De
waarde nooit wordt gebruikt om bepaalde nummers uit te sluiten van een
suggestie verderop in het xml-bestand.
Alleen
de eerste gevonden suggestie die aan het te controleren nummer voldoet wordt
verwerkt, dus de volgorde waarin bepaalde suggesties in dit xml-bestand
zijn opgenomen kan van belang zijn.
Bij
de reguliere expressies (eigenlijk bij alle inhoud van al de xml-bestanden) dient te worden opgemerkt, dat een ampersand (een en-teken, dus ‘&’) dient te worden ingevoerd als ‘&’.
Bij
gebruik van reguliere expressies, bevat invoer de reguliere expressie waarmee de
ingevoerde materieelnummers vergeleken worden. Als de vergelijking slaagt wordt
het materieelnummer gecorrigeerd volgens de uitvoer expressie. Voor informatie
verwijs ik naar de vele bronnen die hierover op internet
zijn te vinden.
Het
programma voegt aan de invoer expressie nog een ^ aan het begin en een $ aan
het eind toe, zodat alleen volledige nummers vergeleken worden, en niet een
deel van een nummer.
Keuzelijst
met locaties: Locaties.xml
De
hele inhoud van dit bestand staat tussen de tags <locatielijst> en </locatielijst>.
In
dit xml-bestand wordt voor elke naam een element
opgenomen.
Elk
element staat tussen de tags <locatie> en </locatie>.
Elke
element bestaat uit de door de volgende tags omsloten
waarden:
<afk> de afkorting van de
locatie.
<naam> de naam van de locatie
(voluit).
<lijn> eventueel een beknopte
aanduiding aan welke lijn de locatie licht.