How can I create a controllable solenoid array?
It feels like "updating" is not the only problem here: you'd want your solenoids to stay energized the whole time, until the next character replaces the old one in the same position.

"How do I control a lot of loads" is a problem that one either tackles by:


Using a microcontroller with a sufficient number of outputs – at 30, that's not really a rare requirement, at all;
Using some simple serial-to-parallel IO extender.


The last is very classically done with latched, serial-in, parallel-out shift register (that's a term you should definitely google!). These have just three inputs:


"clock", which goes high when the value (high/low) of the data pin should be shifted in,
"data", which is the value getting shifted in, and
"latch", which is used to tell the component that it should now update all its outputs based on the values stored in the shift register.


As outputs, it would have


the actual outputs that get controlled as described above
a data out, which takes the value of last entry of the shift register, as it gets "shifted out"
often, a buffered version of "clock" and "latch" as described above.


That way, you can daisy-chain as many shift registers as you like (for example, ten 8-bit shift registers, yielding control for 80 pins in total).

The interface is really simple; most microcontrollers implement it under the name "SPI", but you could even "bitbang" it with a switch for data and two pushbuttons for clock and latch, if you want to explore how things work.