Documentatie/Calc-functies/VERVANGENB

From The Document Foundation Wiki
Jump to navigation Jump to search
This page is a translated version of the page Documentation/Calc Functions/REPLACEB and the translation is 100% complete.
Other languages:
English • ‎Nederlands



Functienaam:

VERVANGENB

Categorie:

Tekst

Samenvatting:

Vervangt bytes in een tekstreeks door de bytes van een andere tekstreeks.

Syntaxis:

VERVANGENB(Tekst; Positie; Lengte; Nieuwe tekst)

Retourneert:

Retourneert een tekenreeks die overeenkomt met de oorspronkelijke tekenreeks, maar waarbij de opgegeven bytes zijn vervangen door die van de opgegeven nieuwe tekenreeks.

Argumenten:

Tekst is een tekenreeks (tussen aanhalingstekens), een getal of een verwijzing naar een cel die één van die typen bevat, dat wil zeggen de originele tekenreeks die bytes bevat die moeten worden vervangen.

Positie is een positief geheel getal of een verwijzing naar een cel die een positief geheel getal bevat, dat wil zeggen de positie binnen Tekst van de eerste byte die moet worden vervangen.

Lengte is een niet-negatief geheel getal, of een verwijzing naar een cel die een niet-negatief geheel getal bevat, dat wil zeggen het aantal bytes binnen Tekst dat moet worden vervangen.

Nieuwe tekst is een tekenreeks (tussen aanhalingstekens), een getal of een verwijzing naar een cel die één van die typen bevat, dat wil zeggen de nieuwe tekenreeks die de vervangende bytes bevat. Het is niet nodig dat de lengte van Nieuwe tekst hetzelfde is als de waarde van Lengte. Stel Nieuwe tekst in op de lege tekenreeks die u wilt verwijderen in plaats van bytes te vervangen in Tekst.

  • Als Positie of Lengte niet-numeriek is, dan retourneert VERVANGENB als fout #WAARDE!.
  • Als Positie of Lengte een niet-gehele waarde is, dan kapt VERVANGENB deze af tot een geheel getal.
  • Als Positie kleiner is dan 1 of Lengte kleiner is dan 0, dan retourneert VERVANGENB als fout Ongeldig argument (Fout:502).
  • Als Positie groter is dan de lengte van Tekst, dan retourneert VERVANGENB als fout Ongeldig argument (Fout:502).
  • Als (Positie + Lengte - 1) groter is dan de lengte van Tekst, dan retourneert VERVANGENB als fout Ongeldig argument (Fout:502).
  • Als Lengte gelijk is aan 0, worden er geen bytes vervangen. De bytes van Nieuwe tekst worden echter ingevoegd vóór de byte die oorspronkelijk op de positie staat die wordt gegeven door Positie.

Aanvullende details:

Details specifiek voor de functie VERVANGENB

De Formule:

=VERVANGENB(Tekst; Positie; Lengte; Nieuwe tekst)

is gelijk aan:

=LINKSB(Tekst; Getal-1) & Nieuwe tekst & RECHTSB(Tekst; LENGTEB( Tekst) - (Positie-1) - Lengte)

Als het opgegeven aantal te vervangen bytes er anders toe zou leiden dat slechts één byte van een teken van twee bytes wordt vervangen, voegt VERVANGENB in plaats daarvan een spatie (Unicode U+0020) in de geretourneerde tekenreeks in. De formule =VERVANGENB("test"; 1; 1; "x") retourneert bijvoorbeeld "x est", waarbij het initiële dubbelbyte-teken "t" (U+FF54) is vervangen door een kleine letter x (U+0078) gevolgd door een spatie (U+0020). De formule =VERVANGENB("test"; 2; 1; "x") geeft als resultaat "xest", waarbij het initiële dubbelbyte "t"-teken (U+FF54) is vervangen door een spatie (U+0020) gevolgd door een kleine x (U+0078).

U kunt de argumenten Tekst en Nieuwe tekst als getallen doorgeven, maar VERVANGENB retourneert altijd tekst. Als u van plan bent verdere berekeningen uit te voeren op een getal dat is geconverteerd naar tekst, moet u het terug naar een getal converteren (bijvoorbeeld met de functie WAARDE of de functie GETALWAARDE).


Algemene informatie over byte-positiefuncties

Note pin.svg

Note:
Voor het gemak wordt de informatie in dit subgedeelte herhaald op alle pagina's die de bytepositiefuncties van Calc beschrijven.

Calc biedt verschillende byte-positie tekstfuncties, die bedoeld zijn om te worden gebruikt met dubbelbyte tekensettalen (DBCS). Deze functies zijn VINDENB, LINKSB, LENGTEB, DEELB, VERVANGENB, RECHTSB en ZOEKENB. Elk heeft een equivalente "gewone" tekstfunctie met een vergelijkbare naam, maar zonder de laatste letter "B".

Calc beschouwt double-byte-tekens als de tekens die binnen de volgende Unicode-codeblokken liggen:


  • Bopomofo Uitgebreid (U+31A0 ... U+31BF)
  • Bopomofo (U+3100 ... U+312F)
  • CJK Compatibiliteitsformulieren (U+FE30 ... U+FE4F)
  • CJK Compatibility Ideographs Supplement (U+2F800 ... U+2FA1F)
  • CJK Compatibility Ideographs (U+F900 ... U+FAFF)
  • CJK Compatibility (U+3300 ... U+33FF)
  • CJK Radicals Supplement (U+2E80 ... U+2EFF)
  • CJK Strokes (U+31C0 ... U+31EF)
  • CJK Symbols and Punctuation (U+3000 ... U+303F)
  • CJK Unified Ideographs Extension A (U+3400 ... U+4DBF)
  • CJK Unified Ideographs Extension B (U+20000 ... U+2A6DF)
  • CJK Unified Ideographs (U+4E00 ... U+9FFF)
  • Enclosed CJK Letters and Months (U+3200 ... U+32FF)
  • Halfwidth and Fullwidth Forms (U+FF00 ... U+FFEF)
  • Hangul Compatibility Jamo (U+3130 ... U+318F)
  • Hangul Jamo (U+1100 ... U+11FF)
  • Hangul Syllables (U+AC00 ... U+D7AF)
  • High Private Use Surrogates (U+DB80 ... U+DBFF)
  • High Surrogates (U+D800 ... U+DB7F)
  • Hiragana (U+3040 ... U+309F)
  • Ideographic Description Characters (U+2FF0 ... U+2FFF)
  • Kanbun (U+3190 ... U+319F)
  • Kangxi Radicals (U+2F00 ... U+2FDF)
  • Katakana (U+30A0 ... U+30FF)
  • Low Surrogates (U+DC00 ... U+DFFF)
  • Private Use Area (U+E000 ... U+F8FF)
  • Yi Radicals (U+A490 ... U+A4CF)
  • Yi Syllables (U+A000 ... U+A48F)


Zie Wikipedia's Unicode block pagina voor meer informatie over deze blokken.

Bovendien worden de codepunten U+005C en U+20AC als dubbelbytetekens beschouwd als de systeemtaal is ingesteld op Japans.

Zoals opgemerkt in ODF 1.2, zijn byteposities implementatie-afhankelijk en dus vermindert het vertrouwen op hen de interoperabiliteit.


Voorbeelden:

De meeste van de volgende voorbeelden zijn vergelijkbaar met de voorbeelden die worden gebruikt voor de functie VERVANGEN en demonstreren het consistente gedrag van de twee functies voor enkelbyte tekenreeksen (SBCS).

Formule Beschrijving Retourneert
=VERVANGENB("muisaanwijzer"; 2; 3; "et ") Hier vervangt de functie drie bytes beginnend bij byte 2 (SBCS-tekens "uis") door drie SBCS-tekens ("et "), en retourneert de tekenreeks "met aanwijzer". "met aanwijzer"
=VERVANGENB(D1; D2; D3; D4) waarbij cel D1 de tekenreeks "muisaanwijzer" bevat, cel D2 de waarde 2, cel D3 de waarde 4 en cel D4 de tekenreeks "et ". Hier vervangt de functie opnieuw drie bytes beginnend bij byte 2 (SBCS-tekens "uis") door drie SBCS-tekens ("et ") en retourneert de tekenreeks "muisaanwijzer". "muisaanwijzer"
=VERVANGENB("1234567"; 1; 1; "444") Hier vervangt de functie één byte beginnend bij byte 1 (SBCS-teken "1") door drie SBCS-tekens ("444"), en retourneert de tekenreeks "444234567". "444234567"
=VERVANGENB(1234567; 1; 1; 444) In dit voorbeeld worden de originele en nieuwe tekststrings doorgegeven als numerieke argumenten, zonder aanhalingstekens. Hier vervangt de functie opnieuw één byte beginnend bij byte 1 (SBCS-teken "1") door drie SBCS-tekens ("444"), en retourneert de tekenreeks "444234567". "444234567"
=VERVANGENB("Invoer tekenreeks"; 8; 0; "tekst ") Hier vervangt de functie geen bytes maar voegt een tekenreeks van vijf bytes (SBCS-tekens "tekst") onmiddellijk voor byte 8 (SBCS-teken "t") in, waardoor de tekenreeks "Invoer tekst tekenreeks" wordt geretourneerd. "Invoer tekst tekenreeks"
=VERVANGENB("Hallo xxxx!"; 6; 5; "") Hier vervangt de functie vijf bytes beginnend bij byte 6 (SBCS-tekens " xxxx") door de lege tekenreeks (waardoor de vijf SBCS-tekens effectief worden verwijderd), waardoor de tekenreeks "Hallo!" wordt geretourneerd. "Hallo!"

De overige voorbeelden demonstreren het gedrag van REPLACEB voor tekenreeksen die dubbelbytetekens bevatten. Deze voorbeelden gebruiken de dubbelbyte-tekens "中" (Unicode CJK Unified Ideograph-4E2D) en "国" (CJK Unified Ideograph-56FD).

Formule Beschrijving Retourneert
=VERVANGENB("中国"; 1; 0; "?") Hier retourneert de functie de tekenreeks "?中国", die vijf bytes lang is. "?中国"
=VERVANGENB("中国"; 1; 1; "?") Hier retourneert de functie de tekenreeks "? 国" (let op de spatie na het vraagteken), die vier bytes lang is. "? 国"
=VERVANGENB("中国"; 1; 2; "?") Hier retourneert de functie de tekenreeks "?国", die drie bytes lang is. "?国"
=VERVANGENB("中国"; 1; 3; "?") Hier retourneert de functie de tekenreeks "?" (let op de spatie na het vraagteken), die twee bytes lang is. "? "
=VERVANGENB("中国"; 1; 4; "?") Hier retourneert de functie de tekenreeks "?", die één byte lang is. "?"
=VERVANGENB("中国"; 2; 0; "?") Hier retourneert de functie de tekenreeks " ? 国" (let op de spaties voor en na het vraagteken), die vijf bytes lang is. " ? 国"
=VERVANGENB("中国"; 2; 1; "?") Hier retourneert de functie de tekenreeks "?国" (let op de spatie voor het vraagteken), die vier bytes lang is. " ?国"
=VERVANGENB("中国"; 2; 2; "?") Hier retourneert de functie de tekenreeks " ?" (let op de spaties voor en na het vraagteken), die drie bytes lang is. " ? "
=VERVANGENB("中国"; 2; 3; "?") Hier retourneert de functie de tekenreeks " ?" (let op de spatie voor het vraagteken), die twee bytes lang is. " ?"

Gerelateerde LibreOffice-functies:

VINDENB

LINKSB

LENGTEB

DEELB

VERVANGEN

RECHTSB

ZOEKENB

ODF standaard:

Section 6.7.6, part 2

Gelijkwaardige Excel-functies:

VERVANGENB