Applescript problems with character offsets and embedded objects in Pages

https://discussions.apple.com/thread/2550810?start=0&tstart=0
The above discussion is archived, but I've noticed a problem witht he solution it proposes.
Essentially, the problem seems to be that the character offset of a selection becomes either inaccessible or out of sync when embedded objects are present in the file.
The following document can be used to demonstrate:
http://images.apple.com/support/pages/docs/ePub_Best_Practices_EN.zip
I've slightly modified the script fromt he previous thread, so here's my own script:
tell front document of application "Pages"
          set C to character offset of (get selection)
          set N to 0
          repeat with P in (get character offset of paragraphs)
                    if P > C then exit repeat
                    set N to N + 1
  select paragraph (N + 1)
          end repeat
          N
end tell
This script is supposed to select the next paragraph in a document, when given a selection. The intention is to call it recursively to get each paragraph of the document in turn.
At the start of the document, it functions correctly, however when it gets to the embedded pictures, lines and table of contents, things start to break. This wouldn't be so bad, because I could simply ignore paragraphs that contains those embedded objects, but the real problems arise in the normal text below these objects.
If you place the cursor on the 3rd page of that document, in an ordinary paragraph, for example, this script will simply return the same paragraph over and over. The reason for this is that the character offset of the paragraphs is being thrown off, so the if statement gets hit too early. You can also see this if you look at the character offsets of the word "Introduction" in the heading at the top of the 3rd page. You'll notice that the character offset is duplicated for a couple of letters, and is out of sync with the index of the character itself.
What I need is a script that will take a selection (of any type), and simply return the correct index of the paragraph containing it every time. It doesn't seem like a difficult thing to do, and since the paragraphs are accessible by index, they should be able to return their index to the user. I have a feeling Apple need to add this functionality to the Pages Applescript dictionary, and they definitely need to fix the bug where the character offsets go out of sync after embedded objects. These are really quite bad problems.

Hi,
Pierre L. wrote:
I have tested it with the document referred to by andyboyd. When the first word (“Introduction”) of the first paragraph of page 3 is selected, your script returns {10}, while it returns {12} when the second word (“to”) of the same paragraph is selected.
Message was edited by: Pierre L.
Thanks Pierre.
Ok, the error is that I mixed the variable N and N1, during the renaming of variables
return N - 1  must be return N1 - 1 -- return the index
Here the corrected script :
set indexList to my getIndexOfLinesInSelection()
on getIndexOfLinesInSelection()
   script o
      property parOffsetList : {}
      on getIndex(C)
         tell application "Pages" to tell front document
            set parOffsetList to character offset of paragraphs
            set tc to count parOffsetList
            repeat with N from 1 to tc
               if N = tc then return tc -- it's the last paragraph
               if (item N of parOffsetList) > C then
                  set N1 to N
                  repeat -- check the  character offset of the selected line
                     if N1 = tc then return tc -- it's the last paragraph
                     select paragraph N1 -- select next paragraph
                     set sel to (get selection)
                     if class of sel is list then
                        repeat with aItem in sel --  this line contains text and object
                           try
                              if character offset of first character of aItem > C then return N1 - 1 -- return the index
                              exit repeat -- else  character offset of the selection <= C , exit the repeat
                           end try -- error,aItem is not valid, continue the repeat
                        end repeat
                     else
                        try
                           if (character offset of first character of sel) > C then return N1 - 1 -- return the index
                        end try
                     end if
                     set N1 to N1 + 1
                  end repeat
               end if
            end repeat
         end tell
      end getIndex
   end script
   tell application "Pages" to tell front document
      set sel to (get selection)
      if class of sel is list then -- selection contains object or  (Non-Continuous selection in the same line or in  différents lines).
         set charOffsetList to {}
         repeat with aItem in sel
            try
               set end of charOffsetList to (character offset of aItem) -- get character offset of  the  valid item
            end try
         end repeat
      else -- insertion point or  the first line in continous text selection
         set charOffsetList to {character offset of sel}
      end if
      if charOffsetList is {} then return {} --  no valid item in the selection
      set indexList to {}
      repeat with C in charOffsetList
         set r to o's getIndex(C)
         if r is not in indexList then set end of indexList to r
      end repeat
      return indexList
   end tell
end getIndexOfLinesInSelection

Similar Messages

  • Is there a problem with the itunes and quick time download pages or is it my internet.

    Is there a problem with the itunes and quicktime download pages or is it just my internet.

    Some more developments ... the issue appears to be browser-specific. I can't see the download controls at the moment in either IE 8 (I'll get your message) or Safari for Windows 5.0.5 (I'll just get the blank box). But I can see the download controls in Firefox 4 and Chrome (whatever version I have of that).
    So it might be worth installing Firefox and seeing if you can get the downloads via that:
    http://www.mozilla.com/en-US/firefox/new/

  • Problem with PDF export and embedded font (characters disappear)

    Designer: Crystal Reports 2008 SP 2
    Engine: CR4E 2.0 SP2 (runtime_12.2.203)
    Hi there!
    we found a problem in the pdf export. It seems like there would be a problem with the embedded fonts, the problem is as follows:
    Rpt file with, for example only a text box which contains the german string " Änderungs Schlüssel ".
    Export the Rpt file with CR4E to a pdf file.
    When we open the pdf file in Adope Reader 8, the text appears to be correct,
    but if we print the PDF file from the Adope Reader, the text changes to " nderungs Schl sselu201C,
    here we are missing ther german umlaute.
    When we open the file for example with an alternative PDF reader like Foxit Reader, there they are also missing.
    After i found some posts here in the forum, there are people facing the same problem, since i couldn't find a solution in the forum, we build a little workaround for it that works for us.
    For all of you that have the same problem here the workaround:
    We used the IText JAVA library, this jar can can help as to fix the PDF file so the text is displayed correctly.
    Here the code:
    ReportClientDocument doc = new ReportClientDocument();
    doc.setReportAppServer(ReportClientDocument.inprocConnectionString);
    doc.open("C:\XY.rpt", OpenReportOptions._openAsReadOnly);
    //... database logon,.....
    InputStream inputStream = doc.getPrintOutputController().export(ReportExportFormat.PDF);
    inputStream = PDFHealer.heal(inputStream);
    //... write the stream some where

    The helper class using IText:
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import com.lowagie.text.Document;
    import com.lowagie.text.DocumentException;
    import com.lowagie.text.pdf.PdfContentByte;
    import com.lowagie.text.pdf.PdfImportedPage;
    import com.lowagie.text.pdf.PdfReader;
    import com.lowagie.text.pdf.PdfWriter;
    public class PDFHealer
       public static InputStream heal(InputStream in) throws DocumentException, IOException
          try
             ByteArrayOutputStream out = new ByteArrayOutputStream();
             PdfReader reader = new PdfReader(in);
             // we retrieve the total number of pages
             int n = reader.getNumberOfPages();
             // step 1: creation of a document-object
             Document document = new Document();
             // step 2: we create a writer that listens to the document
             PdfWriter writer = PdfWriter.getInstance(document, out);
             // step 3: we open the document
             document.open();
             // step 4: we add content
             PdfContentByte cb = writer.getDirectContent();
             int i = 0;
             while( i < n )
                document.newPage();
                i++;
                PdfImportedPage page1 = writer.getImportedPage(reader, i);
                cb.addTemplate(page1, 0, 0);
             // step 5: we close the document
             document.close();
             ByteArrayInputStream ret = new ByteArrayInputStream(out.toByteArray());
             out.close();
             return ret;
          finally
             in.close();

  • Problems with sort, search and write objects o an ArrayList

    Hi
    Lets say that i have two subclasses (the program is not finished so in the end it can be up to 34 classes) of an abstract superclass. I also got one class which basicly is a register in which i've created an ArrayList of the type <abstractClass>. This means that i store the two subclasses in the arrayList. no problems so far i think (at least eclipse doesn't mind).
    1. now, i want to be able to sort the arrayList aswell as search thorugh it. I've tried Collections.sort(arrayList) but it doesn't work. So i have no idea how to solve that.
    2.The search-method i made doesn't work as good as i hoped for either. I ask the user to first decide what to search for (choose subclass) and then input the same properties as the subclass we search for. I create a new object of the subclass with these inputs and try arrayList.contains(subClassObject)
    it runs but it returns +"false"+ even if i create an object with the exact same properties.
    3. If i want to write this arrayList to a txtFile so i can import it another time. Which is the best method? first i just thought i'd convert the arrayList to string and then print every single object to a textfile as strings. that worked but i have no good idea how to import that into the same arrayList later. Then i found ObjectOutputStream and import using inputStream.nextObject(). But that doesn't work :(
    Any ideas?
    Thank you!
    Anton

    lavalampan wrote:
    Hi
    Lets say that i have two subclasses (the program is not finished so in the end it can be up to 34 classes) of an abstract superclass. I also got one class which basicly is a register in which i've created an ArrayList of the type <abstractClass>. This means that i store the two subclasses in the arrayList. no problems so far i think (at least eclipse doesn't mind).
    1. now, i want to be able to sort the arrayList aswell as search thorugh it. I've tried Collections.sort(arrayList) but it doesn't work. So i have no idea how to solve that. Create a custom comparator.
    >
    2.The search-method i made doesn't work as good as i hoped for either. I ask the user to first decide what to search for (choose subclass) and then input the same properties as the subclass we search for. I create a new object of the subclass with these inputs and try arrayList.contains(subClassObject)
    it runs but it returns +"false"+ even if i create an object with the exact same properties.Implement hashCode and equals.
    >
    3. If i want to write this arrayList to a txtFile so i can import it another time. Which is the best method? first i just thought i'd convert the arrayList to string and then print every single object to a textfile as strings. that worked but i have no good idea how to import that into the same arrayList later. Then i found ObjectOutputStream and import using inputStream.nextObject(). But that doesn't work :(Depends on what your requirement is, but yes, Serialization might work for you. Your classes should in that case implement Serializable.
    Kaj

  • Problems with the richTextEditor and quotes

    Hello
    I'm having problems with quote chars and the richText
    control's htmlText. When users enter quotes into the richTextEditor
    control. The quotes breaks the HTML text, meaning it's no longer
    well formatted. Is there an escape char that I need to use. Or do I
    need to force some kind of refresh on the control prior to using
    the htmlText string?

    I have been using RTE in a content management system and
    found a need to replace non-standard quote characters with proper
    UTF-8 character counterparts. Curly quotes in particular are
    problematic. Use a replace function to substitute non-standard for
    standard characters.

  • Problems with itunes 8 and ipod shuffle gen 2.

    Problems with itunes 8 and ipod shuffle gen 2.
    I recently upgraded from itunes 7 to itunes 8 on my windows XP PC. That's when i had issues syncing my 2nd gen shuffle.
    When i try to drag songs directly on it, itunes says i can't
    I made a playlist and use auto fill. But when I remove it from the dock, it's either not updated, or the new songs are at the bottom of the playlist when they are supposed to be up higher. I end up having to hit auto fill twice to make it sync correctly.
    Computer Specs
    Windows XP SP3
    384MB of Ram (works really good)
    USB 1.1 connection
    Pentium 4 clocked at 1.285 GHZ
    IPOD Shuffle Specs
    2nd Generation
    1GB (964MB)
    Version 1.0.4
    unchecked options: open itunes when ipod is attached, Sync only checked songs, convert higher bit rate songs to 128kbps AAC, Enable sound check, Limit MAX volume, enable disk use
    All those are NOT checked. Sometimes i enable disk use for seeing the IPOD_Control folder, but either way it still messes up.
    Itunes Specs:
    Version 8.1.1.10

    This is a well-known issue. Apple changed the internal file names used with iTunes 8, which makes the ordering on 2nd generation Shuffles behave differently. There is no good workaround, apart from moving the files with a hand-crafted AppleScript program.
    Apple has been silent on the issue, so nobody knows if we'll ever have a fix for it or not.

  • Problem with the MenuBar and how can i delete a own component out of the storage

    Hello,
    I opened this thread in the category "Flex Builder 2", but
    under this category my questions fit better.
    I have a problem with the MenuBar and a question to delete a
    component out of storage.
    1. We have implemented the MenuBar, which was filled
    dynamically with XML data.
    Sporadically it will appear following fault, if we "mousover"
    the root layer.
    RangeError: Error #2006: Der angegebene Index liegt
    außerhalb des zulässigen Bereichs.
    at flash.display::DisplayObjectContainer/addChildAt()
    at mx.managers::SystemManager/
    http://www.adobe.com/2006/flex/mx/internal::rawChildren_addChildAt()
    at mx.managers::SystemManager/addChild()
    at mx.managers::PopUpManager$/addPopUp()
    at mx.controls::Menu/show()
    at mx.controls::MenuBar/::showMenu()
    at mx.controls::MenuBar/::mouseOverHandler()
    Here a abrid ged version of our XML to create the MenuBar:
    <Menuebar>
    <menu label="Artikel">
    <menu label="Artikel anlegen" data="new_article" />
    <menu label="Artikel bearbeiten" data="edit_article" />
    <menu label="Verpackung">
    <menu label="Verpackung anlegen" data="new_package" />
    <menu label="Verpackung bearbeiten" data="edit_package"
    />
    </menu>
    <menu label="Materialgruppe">
    <menu label="Materialgruppe anlegen"
    data="new_materialgroup" />
    <menu label="Materialgruppe bearbeiten"
    data="edit_materialgroup" />
    </menu>
    </menu>
    </Menuebar>
    It is a well-formed XML.
    2. Delete a component out of storage
    We have some own components (basically forms), which will be
    created and shown by an construct e.g.
    var myComponent : T_Component = new T_Component ;
    this.addChild(myComponent)
    Some of our forms will be created in an popup. On every call
    of the popup, we lost 5 mb or more, all childs on the windows will
    be removed by formname.removeAllChild();
    What cann we do, that the garbage collector will dispose this
    objects.
    Is there a way to show all objects with references (NOT
    NULL)?
    I have read in the Flex Help, that
    this.removeChild(myComponent) not delete the form and/or object out
    of the storage.
    Rather the object must be destroyed.
    It is sufficient to call delete(myComponent) about remove
    this object out of the storage as the case may be that the
    garbage-collector remove this object at any time?
    Or how can I destroy a component correctly. What happens with
    the widgets on this component e.g. input fields or datagrids?
    Are they also being deleted?
    Thanks for your help.
    Matze

    If you mena the "photo Library" then you cannot delete it.
    This is how iphone handles photos.  There are not two copies.  There a re simply two places from which to access the same photos.  ALL photos synced to iphone can be accessed via Photo Library.  Those same pics can be accessed via their individual folder.

  • Problem with create universe on Business Objects XI 3.1 base on SAP Query

    Hello,
    I have a problem with create universe on Business Objects XI 3.1 base on SAP Query.
    The problem is hierarchy. Massage on Busines Objects is :
       OWBS_ELEMT__ISTKOSZT(cube ICPC01/BEX_ICOC01):Exception condition  "HIERARCHY NOT FOUND" raised.(WIS 10901) 
    Query in BEX run OK.
    Best regards.
    Ela.

    Hello,
    Thanks for response.
    When I run BEX QUERY, all works OK.
    All hierarchies was created and activated  on system BW.
    This situation appears after upgrade BW to SAP NetWeaver 7.3.
    Before upgrade I created universe without any problems.
    Regards Ela

  • Problem with Data Model and Analysis View

    I create an analyze in BI Publisher and then i create a data model using this object.
    When i try to generate an XML with a number of rows the BI Publisher return an empty XML (Only with de DATA_DS tags but no data).   To bypass this problem i make and XML file by hand and this allow me to create reports and design it but when i try to view the reports i got the message that says "No Data Found".
    So i was check the analysis and all looks appears to be fine,  In the results tab it show me a complete table with the data i was looking to use.
    So i try to repeat the error and when  i try to create the XML for the Data Model i found this two error in the logs:
    [root@server ~]# [2013-07-17T16:37:22.844-04:00] [bi_server1] [WARNING] [] [oracle.xdo] [tid: 2361] [userId: <anonymous>] [ecid: ad7bb40a72b553c0:-3e5f91c5:13ecd037992:-8000-00000000000e2b34,0] [APP: bipublisher#11.1.1] Incomplete xslt._XDONFSEPARATORS: decimal separator: null, grouping separator: null
    [2013-07-17T16:37:26.828-04:00] [bi_server1] [WARNING] [] [oracle.xdo] [tid: 2361] [userId: <anonymous>] [ecid: ad7bb40a72b553c0:-3e5f91c5:13ecd037992:-8000-00000000000e2b3a,0] [APP: bipublisher#11.1.1] Incomplete xslt._XDONFSEPARATORS: decimal separator: null, grouping separator: null
    [2013-07-17T16:37:26.865-04:00] [bi_server1] [WARNING] [] [oracle.xdo] [tid: 2361] [userId: <anonymous>] [ecid: ad7bb40a72b553c0:-3e5f91c5:13ecd037992:-8000-00000000000e2b3a,0] [APP: bipublisher#11.1.1] oracle.xdo.servlet.CreateException: Path: /FOLDER/MODEL.xdm is not pointing to a report. Actual type: ReportItem, sub-type: DataModel[[
            at oracle.xdo.servlet.ReportException.fillInStackTrace(ReportException.java:124)
            at java.lang.Throwable.<init>(Throwable.java:196)
            at java.lang.Exception.<init>(Exception.java:41)
            at oracle.xdo.servlet.ReportException.<init>(ReportException.java:36)
            at oracle.xdo.servlet.CreateException.<init>(CreateException.java:18)
            at oracle.xdo.servlet.ReportRepository.getReport(ReportRepository.java:104)
            at oracle.xdo.servlet.ReportRepository.getReport(ReportRepository.java:128)
            at oracle.xdo.servlet.dataengine.DataProcessorFactory.getDataModelPath(DataProcessorFactory.java:207)
            at oracle.xdo.servlet.dataengine.DataProcessorFactory.isSemanticLayerDataModel(DataProcessorFactory.java:99)
            at oracle.xdo.servlet.dataengine.DataProcessorFactory.isSemanticLayerDataModel(DataProcessorFactory.java:78)
            at oracle.xdo.servlet.ReportModelContextImpl.getReportXMLData(ReportModelContextImpl.java:157)
            at oracle.xdo.servlet.CoreProcessor.process(CoreProcessor.java:346)
            at oracle.xdo.servlet.CoreProcessor.generateDocument(CoreProcessor.java:101)
            at oracle.xdo.servlet.ReportImpl.renderBodyHTTP(ReportImpl.java:1074)
            at oracle.xdo.servlet.ReportImpl.renderReportBodyHTTP(ReportImpl.java:639)
            at oracle.xdo.servlet.XDOServlet.writeReport(XDOServlet.java:492)
            at oracle.xdo.servlet.XDOServlet.writeReport(XDOServlet.java:462)
            at oracle.xdo.servlet.XDOServlet.doGet(XDOServlet.java:280)
            at oracle.xdo.servlet.XDOServlet.doPost(XDOServlet.java:313)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
            at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
            at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
            at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
            at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.xdo.servlet.metadata.track.MostRecentFilter.doFilter(MostRecentFilter.java:64)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.xdo.servlet.security.SecurityFilter.doFilter(SecurityFilter.java:125)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.xdo.servlet.init.InitCheckingFilter.doFilter(InitCheckingFilter.java:63)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
            at java.security.AccessController.doPrivileged(Native Method)
            at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
            at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
            at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
            at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
            at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
            at java.security.AccessController.doPrivileged(Native Method)
            at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
            at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
            at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
            at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
            at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
            at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
            at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
            at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
            at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
            at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
            at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
            at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
            at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    And when i try to view the report that use the analysis i got this two warning in the logs:
    [2013-07-17T16:58:01.615-04:00] [bi_server1] [WARNING] [] [oracle.xdo] [tid: 57] [userId: <anonymous>] [ecid: ad7bb40a72b553c0:-3e5f91c5:13ecd037992:-8000-00000000000e2d7c,0] [APP: bipublisher#11.1.1] Incomplete xslt._XDONFSEPARATORS: decimal separator: null, grouping separator: null
    [2013-07-17T16:58:02.034-04:00] [bi_server1] [WARNING] [] [oracle.xdo] [tid: 57] [userId: <anonymous>] [ecid: ad7bb40a72b553c0:-3e5f91c5:13ecd037992:-8000-00000000000e2d84,0] [APP: bipublisher#11.1.1] Incomplete xslt._XDONFSEPARATORS: decimal separator: null, grouping separator: null
    As i understand there is has a reference to a null value but i cant find what column of the analysis has the problem.
    Any ideas about how to solve or debug this?
    Thanks

    I follow your instructions and it works fine. I can create the XML and the reports can show data.
    So, i already know that there is no problem with the data and with the BI Publisher installation but i still doesn know what is the problem with the analysis view that fails.
    Any idea how to debug it?
    Thanks.

  • Problem with character code NCR (example : cộng h�a x� hội)

    Dear
    I have problem with character code NCR when display this string "c&#7897;ng h�a x� h&#7897;i" on web page using JSF. I print out like this c & # 7897 ; ng h � a x � h & # 7897 ; i
    Thanks for help

    jverd wrote:
    A better approach would be to take a char rather than a String in that method, since it's a better model for what you're converting. A char would also let you use switch statement.I was going to say this as well but you beat me to it.
    @OP, you really should use char for this. You're unnecessarily taking each char, converting it to a string, and working with the single-character string. That's not very efficient.

  • Problems with games server and client

    Hi! I am making an MMORPG game and I have problems with the server and client connection.
    I can connect to the server, but when a second player does, the server console tells me this:
    java.net.SocketException: Connection reset
    After that, all clients disconnect.
    Which is the problem?
    How can I solve it?
    Thank you so much

    Here is how my sever work. I took some of this code from a book called Killer Programming Games in Java. If you google for it, you will find it for sure.
    TourGroup tg = new TourGroup(); // this object stores information about all clients connected to the server
        try {
          ServerSocket serverSock = new ServerSocket(PORT);
          Socket clientSock;
          while (true) {
            System.out.println("Waiting for a client...");
            clientSock = serverSock.accept();
            new TourServerHandler(clientSock, tg).start(); // this is the thread that monitors each client
        catch(Exception e)
        {  System.out.println(e);  }
      } This is some code of TourServerHandler
    public TourServerHandler(Socket s, TourGroup tg)
        this.tg = tg;
        clientSock = s;
        name= "?";
        cliAddr = clientSock.getInetAddress().getHostAddress();
        port = clientSock.getPort();
        System.out.println("Client connection from (" +
                     cliAddr + ", " + port + ")");
    public void run()
      // process messages from the client
        try {
          // Get I/O streams from the socket
          BufferedReader in  = new BufferedReader(
       new InputStreamReader( clientSock.getInputStream() ) );
          PrintWriter out =
    new PrintWriter( clientSock.getOutputStream(), true );  
    // and here goes the rest... The TourServerHandler thread uses this code to send messages:
    tg.broadcast(msg); tg.broadcast works like this:
    synchronized public void broadcast(String cliAddr, int port, String msg)
      // broadcast to everyone but original msg sender
        TouristInfo c; // this object stores info about the client
        for(int i=0; i < tourPeople.size(); i++) {
          c = (TouristInfo) tourPeople.get(i);
            c.sendMessage(msg);
      } This is the error part
    public void sendMessage(String msg)
      PrintWriter out;  
        out.println(msg);  
          System.out.println("OK");
      } I can't find any error but I still get that Connection reset exception...

  • [svn] 4836: Fix problems with asdoc comments and conditionally compiled definitions.

    Revision: 4836
    Author: [email protected]
    Date: 2009-02-04 11:07:52 -0800 (Wed, 04 Feb 2009)
    Log Message:
    Fix problems with asdoc comments and conditionally compiled definitions. Fixes bug http://bugs.adobe.com/jira/browse/ASC-3649
    Ticket Links:
    http://bugs.adobe.com/jira/browse/ASC-3649
    Modified Paths:
    flex/sdk/trunk/modules/asc/src/java/macromedia/asc/embedding/Compiler.java
    flex/sdk/trunk/modules/asc/src/java/macromedia/asc/semantics/ConfigurationEvaluator.java

    In the default php.ini is set open_basedir which limits work with php only to few directories (and directories bellow them). There is set /srv/http, /home,/tmp and /usr/share/pear by default.
    To allow your vhost you should add /data/www or set empty value.

  • Problems with ListViews Drag and Drop

    I'm surprised that there isn't an Active X control that can do this more
    easily? Would
    be curious to find out if there is - although we aren't really embracing the
    use of
    them within Forte because it locks you into the Microsoft arena.
    ---------------------- Forwarded by Peggy Lynn Adrian/AM/LLY on 02/03/98 01:33
    PM ---------------------------
    "Stokesbary, Michael" <[email protected]> on 02/03/98 12:19:52 PM
    Please respond to "Stokesbary, Michael" <[email protected]>
    To: "'[email protected]'" <[email protected]>
    cc:
    Subject: Problems with ListViews Drag and Drop
    I am just curious as to other people's experiences with the ListView
    widget when elements in it are set to be draggable. In particular, I am
    currently trying to design an interface that looks a lot like Windows
    Explorer where a TreeView resides on the left side of the window and a
    ListView resides on the right side. Upon double clicking on the
    ListView, if the current node that was clicked on was a folder, then the
    TreeView expands this folder and the contents are then displayed in the
    ListView, otherwise, it was a file and it is brought up in Microsoft
    Word. All this works great if I don't have the elements in the ListView
    widget set to be draggable. If they are set to be draggable, then I am
    finding that the DoubleClick event seems to get registered twice along
    with the ObjectDrop event. This is not good because if I double click
    and the current node is a folder, then it will expand this folder in the
    TreeView, display the contents in the ListView, grab the node that is
    now displayed where that node used to be displayed and run the events
    for that as well. What this means, is that if this is a file, then Word
    is just launched and no big deal. Unfortunately, if this happens to be
    another directory, then the previous directory is dropped into this
    current directory and a recursive copy gets performed, giving me one
    heck of a deep directory tree for that folder.
    Has anybody else seen this, or am I the only lucky one to experience.
    If need be, I do have this exported in a .pex file if anybody needs to
    look at it more closely.
    Thanks in advance.
    Michael Stokesbary
    Software Engineer
    GTE Government Systems Corporation
    tel: (650) 966-2975
    e-mail: [email protected]

    here is the required code....
    private static class TreeDragGestureListener implements DragGestureListener {
         public void dragGestureRecognized(DragGestureEvent dragGestureEvent) {
         // Can only drag leafs
         JTree tree = (JTree) dragGestureEvent.getComponent();
         TreePath path = tree.getSelectionPath();
         if (path == null) {
              // Nothing selected, nothing to drag
              System.out.println("Nothing selected - beep");
              tree.getToolkit().beep();
         } else {
              DefaultMutableTreeNode selection = (DefaultMutableTreeNode) path
                   .getLastPathComponent();
              if (selection.isLeaf()) {
              TransferableTreeNode node = new TransferableTreeNode(
                   selection);
              dragGestureEvent.startDrag(DragSource.DefaultCopyDrop,
                   node, new MyDragSourceListener());
              } else {
              System.out.println("Not a leaf - beep");
              tree.getToolkit().beep();
    }

  • Problems with Customer Service AND unexplained charges!

    I've been with Verizon for I-don't-know-how-many years, and through the years you are bound to have a few problems here and there but some of the problems are just ridiculous! It's also the same reocurring problem!!!!!!!!!!!!!!!! I was with Alltel first, before it was bought out by Verizon. The years I was with Alltel, I didn't have near as many problems. It seems EVERY time I do the smallest change or something to my phone or bill, I get a ridiculous amount of charges that I was NOT aware of, nor told about... EVEN IF I ask "So this isn't going to change my bill, or there will not be any unexpected/unexplained charges that I don't know about?"... BUT not matter how many times I ask... and NO matter how many times I am told "no"... there always is. For example.... last year, I updated and signed a new 2 year contract and purchased the first Driod. Before, my 30 day warranty was up, I was having problems with my Driod, and decided to send it in and get a new one. Before I did this.. I called customer service to make sure there would be no interuption in my bill, and there wouldn't be any unexpect charges, and there would be no difference in anything. I was told there was not, and once I recieved my new phone, just send it in and nothing would be changed. Of course, when I get my bill.. I see I was charged $500 for the new phone. It was explained to me that my credit card was reimbursed (which I never check that card, because I never used it expect to purchase the phone) and that I was recharged for the new phone, since it was a new phone. So I had to fork out the $500 (on top of my bill) and then wait months to get the $100 rebate card. Months after that, I "assumed liablity of my line" because I was on a plan with my family. I decided to have my own line, so I "assumed liability." I was not told that when I did that, I "renewed" my contract date. So I just added 6 more months to my 2 year contract. Was NOT told about that! Then again...... I was recently having problems with my Driod (the screen went black and would not come back on.) I had to turn on an OLD motorola razor, so I would not be without a phone for two days while I was waiting on my phone to come in. As soon as my phone came in, I had my Droid turned back on. I recieved my bill recently, and my bill was $200 over what it normally should be.... so I called in... apparently, when I had my phone replaced, they dropped off my data package and when I recieved my replacement driod, they never put it back on. So I was being charged for alllll my data usage... again I was NOT told about this. I wasn't even aware that they had dropped off my data package, and when/where did they get the authority to do that??? These are just a FEW of the problems that I have had.................................
    Does anyone have these reoccuring problems!?

    I understand that my bill can be viewed online, and I do view it fairly regularly, so if there are any unexplained charges, I can call Verizon asap. The problem does not come from me not understanding my bill, but from customer service. I have been with Verizon for a very long time, and it is a continuing problem. Where did Verizon get the 'OK' to drop my data package off my plan? Who authorized that?
    After calling Verizon and trying to find out the problem, the gentleman told me that when I activated on old phone while I was waiting on my new Droid to arrive, my data package was dropped off and I "should" have been told about that. When I reactiviated my new Droid, I "should" have called and had them restart my data package. I was not aware that when you activate an old phone that data plan is taken off your plan. In all my years of having cell phones, I never make two years with one phone. I have always, at one point, had to turn on an old phone, and my data package has NEVER changed. Why would I have my data package dropped and why would I have to call Verizon to have it restarted. I would never know to do that unless I was TOLD that my data packaged HAD to be re-added when I recieved my new phone, but I was never told of that.
    All of that is beside the point, the point is, Verizon was never given the authorization to change my plan. Never. My bill was taken care of and readjusted, and I am thankful for that. It does not change the fact it is always a hassle with Verizon Customer Service and I am always the one having to PROVE that I am not at fault, or that I was NEVER told of certian things. EVERY TIME I HAVE CALLED CUSTOMER SERVICE, I AM TOLD "I'M SORRY, THEY SHOULD HAVE TOLD YOU THAT."
    "they should" does not help my bill with the extra armount of charges.

  • Problems with dropped calls and no reception on Samsung Continuum

    My mother and I both purchased a Samsung Continuum in late March 2011, and have experienced the same problems with the phone.  The device drops at least 2-3 calls per day, often on the same conversation; we have not found that location or time of day makes a difference.  The phone freezes up frequently, even if no apps are running in the background.  We lose our 3G network reception frequently, and cannot access our texts, emails, or the internet.  The screen saver kicks in even when we are actively dialing a number, or typing in a text message.  The overall performance of the phone is also poor, and it is quite slow much of the time.
    We have raised this issue several times with a representative at one of the Verizon stores, but he states that he can find no problem with the phone, and that these issues may not be covered under our insurance plan.  None of my friends with non-Samsung phones are having the same problems with phone reception and performance.  I am aggravated enough with these issues that I am considering reactivating my old Blackberry, which worked like a charm.
    I am not upset that my phone has not been updated to Android 2.2.  I just want the phone to perform as stated, and not fail at its primary function:  making and receiving phone calls.  I am not certain if these problems originate with the phone, Verizon, or Samsung, nor do I care.  I just want to resolve these issues as soon as possible, or I will have to look at other alternatives.
    Thank you.

    If this doesn't work...now what??? I have a useless $400 plus piece of unreliable junk. My Motorola Razor was ions more reliable than this phone...very, very sad but true.
    What carrier were you using with the Razor? AT&T? Same area?
    Dave M.
    MacOSG Founder/Ambassador  An Apple User Group  iTunes: MacOSG Podcast
    Creator of 'Mac611 - Mobile Mac Support' (designed exclusively for an iPhone/iPod touch)

Maybe you are looking for

  • Unable to upload photobook with Iphoto

    I am trying to order a photo book with Iphoto 9.6.  Everytime I try I get the error "error occured uploading order".  It was no problem to generate the pdf version via http://support.apple.com/kb/HT1040.  Also tried to shut down computer and restart

  • How do you set a start and end time based on changes in data averages?

    I am making a VI to collect data from a calorimeter that will detect automatically when I have triggered the combustion by recognizing a rise in the average temperature, and then will record data from that point until it the temperature rise stops or

  • Applescript to change font in outgoing messsage

    I'm quite inexperienced with applescript -- this is basic question I think. Can someone help with a script to set the font of the entire contents of an outgoing message to a particular font and size, say Helvetica 12? MBP Mac OS X (10.4.9)

  • Java Web Services

    Hi I have using jdevleper 10.1.2. I have generated a WebService for my Login Java class. The Web Service has 2 method login and register. I have converted the Java into a Web Service. I have created stub and I am able to call these Web Service method

  • MIR4 transaction is giving ABAP Runtime Error

    Hi Experts, When I am trying to display the invoice in MIR4 and/or MIRO the system is generating ABAP runtime error.  DYNPRO_FIELD_CONVERSION.  This is in Version ECC 6.0. Short text     Conversion error What happened?     The current screen processi