zoek en vervang

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • stefan787
  • Registratie: Maart 2013
  • Laatst online: 26-09 08:37
Beste Tweakers!

Ik heb op me stage een stuk software gemaakt, en in dit sutk software moeten een aantal zaken worden ingesteld.
Nu zou ik graag in visual studio een tooltje willen ontwikkelen waarmee me collega`s met gemaakt de parameters kunnen instellen zonder dat ze de rest van de code kunnen slopen.

Nu heb ik een simpel programma opgezet, hiermee kan ik het stuk code inladen, en weergeven en gevolgens met een tekstvak zoeken in de tekst, dit werkt naar behoren. Zoals je kan zie op de foto... zoek ik naar de parameter :
code:
1
uint8_t ip[] =
En dat wordt netjes geel gearceerd.

Afbeeldingslocatie: https://imgur.com/JXOmhto.png

Alleen nu komt me probleem.. ik heb nu naar de parameter zelf gezocht... alleen ik moet de gegevens achter de parameter veranderen. Dus ik moet naar
code:
1
uint8_t ip[] =

zoeken en
code:
1
{ 192, 168, 1, 3 };

wil ik gaan vervangen met een andere Ip adres. Alleen ik zou niet weten hoe ik dat moet programmeren. Zoek en vervang is me wel gelukt, alleen wat ik zoek moet ik niet vervangen, wat er tussen de {} staat moet worden vervangen.
Zijn er hier mensen die mij op weg kunnen helpen hiermee!?

Alvast bedankt!

Alle reacties


Acties:
  • 0 Henk 'm!

  • DRaakje
  • Registratie: Februari 2000
  • Niet online
Meerdere wegen naar rome:

1. Textbox niet read only maken,
2. Select deel en replace dat.
3. Regex.Replace (zoeken na gevonden en dan tussen de {} replacen

Acties:
  • 0 Henk 'm!

  • MewBie
  • Registratie: April 2002
  • Laatst online: 16:52
Als de parameters instelbaar moeten zijn, waarom zijn ze dan hardcoded?
Waarom niet settings menu in het programma?
Sowieso is IPadressen hardcoden niet zo handig zodra je uit je eigen test omgeving komt.

Please leave a message after the beep.
*beeeeep*


Acties:
  • 0 Henk 'm!

  • stefan787
  • Registratie: Maart 2013
  • Laatst online: 26-09 08:37
DRaakje schreef op maandag 28 januari 2019 @ 10:11:
Meerdere wegen naar rome:

1. Textbox niet read only maken,
2. Select deel en replace dat.
3. Regex.Replace (zoeken na gevonden en dan tussen de {} replacen
de textbox is er nu alleen maar even als helpende hand, dit gebeurt straks gewoon op de achtergrond en na het instellen wordt er een nieuw tekst document gemaakt met de gegevens allemaal juist ingevuld.
MewBie schreef op maandag 28 januari 2019 @ 10:24:
Als de parameters instelbaar moeten zijn, waarom zijn ze dan hardcoded?
Waarom niet settings menu in het programma?
Sowieso is IPadressen hardcoden niet zo handig zodra je uit je eigen test omgeving komt.
omdat het hele programma straks op een atmega328p zal verdwijnen, en er dan niks valt aan te passen.


ik probeer er voor te zorgen dat het stuk code door iedereen te configureren is en te uploaden is. Door dit tooltje hoop ik dat het een stuk makkelijker zal gaan verlopen.

Acties:
  • +1 Henk 'm!

  • jctjepkema
  • Registratie: Mei 2011
  • Laatst online: 04-10 15:47
B
stefan787 schreef op maandag 28 januari 2019 @ 10:33:
[...]


de textbox is er nu alleen maar even als helpende hand, dit gebeurt straks gewoon op de achtergrond en na het instellen wordt er een nieuw tekst document gemaakt met de gegevens allemaal juist ingevuld.


[...]


omdat het hele programma straks op een atmega328p zal verdwijnen, en er dan niks valt aan te passen.


ik probeer er voor te zorgen dat het stuk code door iedereen te configureren is en te uploaden is. Door dit tooltje hoop ik dat het een stuk makkelijker zal gaan verlopen.
Waarom niet met een tooltje de juiste instellingen over uart sturen. Dan hoef je geen uitgebreide gebruiksaanwijzing te maken mits je de code op de atmega hierop voorbereid.

Edit autocorrect 8)7

Acties:
  • +3 Henk 'm!

  • StapelPanda
  • Registratie: Februari 2005
  • Laatst online: 06-10 10:14

StapelPanda

PB0MV

Het eenvoudigste is om dit in een header file te zetten, deze kan je dan met je tooling genereren, voorbeeld:
#include "config.h"

uint8_t ip[] = IP_ADDR;
uint8_t subnet[] = IP_SUBNET;
#ifndef __CONFIG_H__
#define __CONFIG_H__

#define IP_ADDR {192,168,1,3}
#define IP_SUBNET {255,255,255,0}

#endif
Waarbij je dus de config.h genereerd met je tool. en de DEFINES gebruikt in je C (of ino) file.

Acties:
  • 0 Henk 'm!

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 16:32

SA007

Moderator Tweaking
Dit is behoorlijk geen electronica :)

Maar eens een move naar PRG.

Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
StapelPanda schreef op maandag 28 januari 2019 @ 10:59:
Het eenvoudigste is om dit in een header file te zetten
Niet alleen het eenvoudigste.
Maar ook het meest veilige.

Een naive regex replace of handmatige string find/replace is verschrikkelijk foutgevoelig als je die zonder verder nadenken over een hele codebase gaat gooien.

Acties:
  • +2 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
stefan787 schreef op maandag 28 januari 2019 @ 10:05:
Beste Tweakers!

Ik heb op me stage een stuk software gemaakt, en in dit sutk software moeten een aantal zaken worden ingesteld.
Nu zou ik graag in visual studio een tooltje willen ontwikkelen waarmee me collega`s met gemaakt de parameters kunnen instellen zonder dat ze de rest van de code kunnen slopen.
Dat is niet de manier waarop je dat soort dingen oplost.

Instelbare parameters horen niet in de source code. Dan heb je ook niet direct een tooltje nodig om de source code aan te passen. De standaard Windows methode is een Registry entry, maar een configuratie file is de portable methode.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 17:29

Matis

Rubber Rocket

StapelPanda schreef op maandag 28 januari 2019 @ 10:59:
Het eenvoudigste is om dit in een header file te zetten, deze kan je dan met je tooling genereren, voorbeeld:

...

Waarbij je dus de config.h genereerd met je tool. en de DEFINES gebruikt in je C (of ino) file.
Klopt, dat is inderdaad de manier om het te doen. Een andere mogelijkheid zou nog kunnen zijn om de defines op de commandline mee te geven door jouw make tool.

If money talks then I'm a mime
If time is money then I'm out of time

Pagina: 1