Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Code128 Subset C översättning från VB

Postades av 2007-05-10 10:36:51 - Niklas Györi, i forum c# (c-sharp), Tråden har 4 Kommentarer och lästs av 825 personer

Hej har ett problem med att översätta detta till C# och undrar om någon kan hjälpa till.
Jag har löst det "nästan" men får fel i vissa fall och har inte lyckats klura ut det hela.

<code>
Make_Subset_C()

'*** Start C has value of 105
Total% = 105

'*** Add Start Character to output
BarCodeData.Text = Chr$(137)

'*** Make sure there are an even number of digits
If Len(UserText.Text) Mod 2 <> 0 Then UserText.Text = "0" + UserText.Text

'*** Initialize k to keep track of position value
k% = 1

'*** Loop through the data & read each pair of characters
For I% = 1 To Len(UserText.Text)

'*** Need to remap this character if it appears
If Asc(Mid$(UserText.Text, I%, 1)) = 127 Then
BarCodeData.Text = BarCodeData.Text + Chr$(139)
End If

'*** Need to remap this character if it appears
If Asc(Mid$(UserText.Text, I%, 1)) = 32 Then
BarCodeData.Text = BarCodeData.Text + Chr$(192)
Else
BarCodeData.Text = BarCodeData.Text + Chr$(Val(Mid$(UserText.Text,_ I%, 2)) + 32)
End If

'*** Multiply position * value and add to existing total
Total% = Total% + (Val(Mid$(UserText.Text, I%, 2)) * k%)

k% = k% + 1
I% = I% + 1

Next I%

'*** get the MOD 103 check digit value
Total% = Total% Mod 103

'*** remap character if it appears
If Total% = 0 Then Total% = 113

'*** Add check digit to output
BarCodeData.Text = BarCodeData.Text + Chr$(Total% + 32)

'*** Add stop character to output
BarCodeData.Text = BarCodeData.Text + Chr$(138)

'*** Loop through code and remap space characters
Temp$ = ""
For I% = 1 To Len(BarCodeData.Text)

If Asc(Mid$(BarCodeData.Text, I%, 1)) = 32 Then
Temp$ = Temp$ + Chr$(192)
Else
Temp$ = Temp$ + Mid$(BarCodeData.Text, I%, 1)
End If

Next I%

BarCodeData.Text = Temp$

end sub
</code>


Svara

Sv: Code128 Subset C översättning från VB

Postades av 2007-05-11 13:27:59 - Niklas Györi

Så här har jag försökt lösa det. Men det fungerar bara till en viss gräns. Får jag in för mågna tecken blir strängen fel.

public static string code128C(string txt)
    {
        
            string txtRetur = "";
            string start = "‰";
            string strStop = "Š";

            // Fixa till längden på inkommande sträng
            if (txt.Length % 2 != 0)
            {
                txt = "0" + txt;
            }
            string tmpText = txt;

            //Längen på strängen parvis
            int k = (txt.Length / 2);

            for (int i = 1; i <= k; i++)
            {
                string s = Mid(txt, 0, 2);
                int myChar = Convert.ToInt32(s) + 32;
                if (myChar == 32)
                {
                    string str = new string((char)0192, 1);
                    txtRetur = txtRetur + str;
                }
                else if (myChar == 127)
                {
                    string str = new string((char)0139, 1);
                    txtRetur = txtRetur + str;
                }
                else if (myChar > 127)
                {
                    string sTemp = "1" + s;
                    int tmpChar = Convert.ToInt32(sTemp);
                    string str = new string((char)tmpChar, 1);
                    txtRetur = txtRetur + str;
                }

                else
                {
                    string str = new string((char)myChar, 1);
                    txtRetur = txtRetur + str;
                }

                txt = txt.Remove(0, 2);

            }

            int sum = Code128CChecksum(tmpText);
            txtRetur = start + txtRetur;
            if (sum == 0)
            {
                sum = 113;
            }
            else if (sum > 94)
            {
                sum = sum + 100;
            }
            else
            {
                sum = sum + 32;
            }

            
            //Kolla storlek på kontrolltecken innan.
            
            string strCheck = new string((char)sum, 1);
            txtRetur = txtRetur + strCheck + strStop;

            return txtRetur;

    }
    private static int Code128CChecksum(string chk)
    {
        int i = 1;
        int sum = 105; //Summan 105 är startkoden för 128C

        int k = chk.Length / 2;
        string tmp = chk;


        for (int a = 1; a <= k; a++)
        {
            string s = tmp.Substring(0, 2);
            int myChar = Convert.ToInt32(s);
            sum = sum + (myChar * i);
            i++;
            tmp = tmp.Remove(0, 2);
        }
        sum = (sum % 103);

        return sum;
    }
    private static string Mid(string param, int startIndex, int length)
    {
        //start at the specified index in the string ang get N number of
        //characters depending on the lenght and assign it to a variable
        string result = param.Substring(startIndex, length);
        //return the result of the operation
        return result;
    }


Någon med någon bra idé och lösning?


Svara

Sv:Code128 Subset C översättning från VB

Postades av 2007-05-11 22:41:05 - Martin Rex

Jag är inte helt säker på att jag förstår problemet, men det finns ju typsnitt för coder128 man kan ladda hem gratis, varför inte bara ändra typsnittet ?
Om du har en sträng du vill ha ut som barcode, så funkar det utmärkt med att använda det typsnittet.
I vissa fall får man lägga ett '*'-tecken före för att det ska funka.


Svara

Sv: Code128 Subset C översättning från VB

Postades av 2007-05-12 09:01:14 - Niklas Györi

Jadu Martin...

Ett teckensnitt medföljer och visst är det så att Code39 streckkoden startar med en asterisk och slutar med den samma.
Men i detta fall är det Code128 och subset C som ska användas för att att platsen som det ska skrivas på är begränsad. Code128C är komprimerad. Hade det varit 128B som är förvisso mer komprimerad än Code39 så hade saken varit "biff". Men nu är det det 128C i som gäller för att få plats med koden.

Code128 C till just det här typsnittet ska räknas ut på det sätt som VB koden beskriver. Fick med ett program från leverantören så jag kan prova vad som händer men ingen kod för C# och det är det som ska användas i det jag håller på med.

Jag har alltså försökt översätta och fått det att fungera "nästan".

Var hittar du 128 typsnittet gratis?


Svara

Sv:Code128 Subset C översättning från VB

Postades av 2007-06-08 17:51:21 - Niklas Györi

Visst finns det en gratisvariant på Code128 typsnittet men bara i subset B.

*puffar tråden lite*


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 808
27 960
271 761
544
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies